要统计字符串中单词的个数,可以利用以下思路:
以下是一个示例代码:
#include <stdio.h>
int countWords(char *str) {
int count = 0;
int isWord = 0; // 标记是否在单词中
// 遍历字符串中的每个字符
for (int i = 0; str[i] != '\0'; i++) {
// 判断当前字符是否为空格或者标点符号
if (str[i] == ' ' || str[i] == ',' || str[i] == '.' || str[i] == '?' || str[i] == '!') {
isWord = 0; // 不在单词中
}
else {
// 判断前一个字符是否是字母或数字
if (i == 0 || str[i-1] == ' ' || str[i-1] == ',' || str[i-1] == '.' || str[i-1] == '?' || str[i-1] == '!') {
isWord = 1; // 在单词中
count++; // 单词计数器加1
}
}
}
return count;
}
int main() {
char str[] = "Hello, World! This is a string.";
int wordCount = countWords(str);
printf("The number of words in the string is: %d\n", wordCount);
return 0;
}
运行以上代码,将输出字符串中的单词个数为7。