以下情况: 我有一个单词列表。例如:“你好”,“嘿”,“帮助”,“鲨鱼”。
我想保存数组apcWord中的那些(word-array ..更具体地说,指针数组)。 我有一个指针pcBeg到开头字符串“他”
我必须用这个函数原型解决这个问题: void search(char * apcString [],char * pcBeg)
如何过滤单词数组,只打印以“He”开头的单词。
我完全糊涂了..我用strstr()尝试了一些东西,但没有结果。问题是单词列表,并使用此“He”开头过滤所有单词。如果我只有一个字,只是想知道它是以“他”开头还是没有问题。
我希望我尽可能清楚地解决问题。 谢谢你的帮助!
答案 0 :(得分:0)
我有一个单词列表? probabaly你想要声明 char类型的指针变量数组。例如
char *apcWord[4] = {"Hello","Hey","Help","Shark"};
并且我有一个指针pcBeg到开头的字符串"他" ?正如你所说的声明一个字符指针。例如
char *pcBeg = "Hi";
我必须用这个函数原型解决这个问题:?你应该学习如何将指针数组传递给函数。如果要将char指针数组传递给函数,则需要捕获char类型的双指针。这是示例代码
void search (char **apcString, char *pcBeg,int ele) {
/* logic */
}
如何过滤单词数组,只打印出以" He"开头的单词。 ?使用strncmp()
代替strstr()
。打开man 3 strncmp
和strncmp()
的第三个参数对于您引用以&#34开头的单词的部分非常有用;他"。以下是示例代码
void search (char **apcString, char *pcBeg,int ele) {
int count = 0;
for(int row = 0 ;row < ele ;row++) {
if(strncmp(apcString[row],pcBeg,strlen(pcBeg)) == 0) {
count++;
}
}
printf(" count of %s is : %d \n",pcBeg,count);
}
最后如何从search()
函数
main()
int main(void) {
char *apcWord[5] = {"HelloHi","HiHey","Help","Hi","Shark"};
int ele = sizeof(apcWord)/sizeof(apcWord[0]);
char *pcBeg = "Hi";
search(apcWord,pcBeg,ele);/* 3rd arg :- pass the no of element in the array of pointer */
return 0;
}
我希望我尽可能清楚地解决问题。 ?不,你没有。我们不知道您尝试了哪些代码,建议您将代码放入问题中,以便获得更多帮助。
最后建议你阅读一些关于数组,指针等概念的优秀C书。了解如何使用gdb
https://ericlippert.com/2014/03/05/how-to-debug-small-programs/调试小代码。