我差不多完成了这个学期的学期,而且我正在写一个函数来查找字符串中某个字符的编号,考虑到老师分配的功能原型。我知道我必须做一些愚蠢的事情,但是这个代码要么锁定,要么无限循环地在我的函数中循环。C - 使用strchr来计算字符串中字符的出现次数
这是一项任务,所以我不是在寻找任何人为我做作业,而仅仅是指出我错在哪里以及为什么,所以我可以理解如何解决它。我希望你愿意给予的帮助。
下面是我写的代码:
#include <stdio.h>
#include <string.h>
int charCounter(char* pString, char c);
int main(void)
{
char* inpString = "Thequickbrownfoxjumpedoverthelazydog.";
int charToCount;
int eCount;
eCount = 0;
charToCount = 'e';
eCount = charCounter(inpString, charToCount);
printf("\nThe letter %c was found %d times.", charToCount, eCount);
return 0;
} // end main
int charCounter(char* pString, char c)
{
int count = 0;
char* pTemp;
do
{
pTemp = strchr(pString, c);
count++;
}
while(pTemp != NULL);
return count;
} // end countCharacter
你必须使用'strchr'?我会对所有元素进行直接迭代。 – Deduplicator
为此使用'strchr'是一个“矫枉过正”。只需迭代输入字符串,直到达到空字符,并在遇到输入字符时增加计数器。 –
将其更改为strchr(pTemp,c)现在,您始终从原始字符串的始端开始始终 –