题目:统计在字符串中出现的单词的个数
c
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
int FindWordInStr(char* arr) {
bool inWord = false, lastInWord = false;
int count = 0, len = strlen(arr);
for (int i = 0; i < len; i++) {
if (arr[i] != ' ') {
inWord = true;
lastInWord = true;
}
else { //当前字符为空字符
//首先判断之前是否在一个单词中,如果在,让单词数+1
if (lastInWord) {
count++;
lastInWord = false;//将状态复位
}
else {//之前不在一个单词中
inWord = false;//不在单词状态置为true
}
}
}
// 检查字符串末尾是否在一个单词中(检查最后一个字符是否为非空字符)
if (lastInWord && arr[len - 1] != ' ') {
count++;
}
return count;
}