我是新来的,请原谅我,如果我错过了什么。 我会直截了当地说明问题。 我想读一个.txt文件并将所有单词存储在一个单词数组中,所以我正在做的是:
int countWords(char *stringInput)
{
char const *p = stringInput;
int count;
printf("Counting Words\n");
for (count = 0; ; ++count) {
p = strstr(p, " ");
if (!p)
break;
printf("p: %s\n",p);
//Here I want to store every 'word' from the 'paragraph'
strcpy(wordsArray,p);
p++;
}
printf("There are %d words.\n",count);
return count;
}
想法是stringInput是段落。我用printf检查p中存储了什么。我可以将每个单词存储在不同的数组中吗?如果可以,我怎么能做到这一点? 我的问题在于,strstr并没有得到“'它从开始到下一个空格(在这种情况下......)获得整行。
很抱歉这样的初学者问题。 感谢您的时间和专业知识。
答案 0 :(得分:1)
strstr
只是在字符串中找到子字符串。你实际上并不想找到子串;你想找到一个在计算上更简单的角色。因此,如果您只想找到空格,则应使用strchr
代替。
但是如果你想将字符串分成单独的部分,你可能想要使用strtok
。
所有这些功能都在其联机帮助页中得到了很好的描述。 (man strchr
; man strtok
),您应该可以在自己的计算机上阅读。但如果您更喜欢使用互联网而非本地可用资源,则可以使用online。