📅  最后修改于: 2023-12-03 15:14:25.965000             🧑  作者: Mango
本题是一道C语言编程问题,需要使用C语言进行代码实现。
编写一个函数,函数名为countWords
,输入一个字符串,输出该字符串中单词的个数。
单词是指以空格、制表符或者回车符为间隔的一个或多个字符的序列。
例如,Hello, world!
中包含两个单词。
int countWords(char *s);
s
,字符串的长度不超过10000s
中单词的个数#include <stdio.h>
#include <string.h>
int countWords(char *s)
{
int count = 0, state = 0;
while (*s)
{
if (*s == ' ' || *s == '\t' || *s == '\n')
state = 0;
else if (state == 0)
{
state = 1;
count++;
}
s++;
}
return count;
}
int main()
{
char str[10000];
fgets(str, sizeof(str), stdin);
printf("%d\n", countWords(str));
return 0;
}
使用fgets
函数读入字符串,然后调用countWords
函数计算单词数量,并输出结果。
该函数的算法思路如下:
count
表示单词数量,变量state
表示当前字符是否为空格、制表符或者回车符,默认值为0state
设为0state
的值,如果为0,将state
设为1,并将count
加1count
本题涉及到字符串的处理,需要对C语言字符串的一些基本操作有一定的了解,比如循环处理字符串、判断字符串中的字符类型等等。
在编写完代码后,可以通过给出的测试用例对代码进行简单的测试,以保证代码的正确性。