c语言中关于strchr的问题

2025-04-28 19:57:09
推荐回答(1个)
回答1:

你可以按你编写的程序手动执行一遍,首先char *pGot_char = str;将指针指向字符数组的起始位置,然后判断while(strchr(pGot_char,ch))中的条件找到第2个单词“piper”的p,所以strchr(pGot_char,ch)不为零,条件为真,进入循环体,将计数count加1,并将指针加1,注意,指针加1后指向谁?指向了字符数组的第2个字符即“Peter”中"e",然后又去判断while的条件判断表达式strchr(pGot_char,ch),找到的仍然是第2个单词“piper”的p,所以。。。你的结果不会正确的。上边的那个程序语句pGot_char = strchr(pGot_char,ch)表示在找到一个p后将指针修改为找到的p所在的内存地址,再执行++pGot_char;后指针就指向找到的p的下一个字符然后再继续寻找就不会错啦