题目描述
存在一个字符数组,要求我们将其中的单词数量返回
计算字符串中单词的数量,就等同于计数单词的第一个下标的个数,因此,我们只需要遍历整个字符串,统计每个单词的第一个下标的数目即可
满足单词的第一个下标有以下两个条件:
1. 该下标对应的字符不为空格
2. 该下标为初始下标或者该下标的前下标对应的字符为空格
C 语言具体代码实现
此处使用了题目描述中的原地法!!!
从字符数组的第一个元素开始遍历,查找所有单词的第一个下标的个数(即为单词数)
#include <stdio.h>
#include <string.h>
int countSegments(char *s){
// 满足单词的条件:遍历字符数组
// 1. 该下标对应的字符不为空格
// 2. 该下标为初始下标或者前一个下标为空格
int index = 0;
for(int i = 0; i < strlen(s); i++){
if(s[i] != ' ' && (i == 0 || s[i-1] == ' ')){
index++;
}
}
return index;
}
int main(void){
int index = countSegments("Hello, my name is SU");
printf("单词数为:%d", index); // 单词数为:5
return 0;
}