用C语言编程,输入一段文字,统计其中有多少个单词。
时间: 2024-03-10 14:47:44 浏览: 20
好的,可以使用以下代码实现:
```c
#include <stdio.h>
int main()
{
char str[1000];
int words = 1; // 初始值为1,因为第一个单词前没有空格
printf("请输入一段文字:");
fgets(str, sizeof(str), stdin); // 从标准输入读取一行字符串
for (int i = 0; str[i] != '\0'; i++)
{
if (str[i] == ' ') // 如果遇到空格,单词数加1
{
words++;
}
}
printf("该段文字有 %d 个单词\n", words);
return 0;
}
```
代码思路是:读入一行字符串后,遍历字符串中的每个字符,如果遇到空格,就认为前面的部分是一个单词,单词数加1。最后输出单词数即可。
相关问题
用c语言基础写编程,输入一段文字,统计其中有多少个单词
好的,我可以帮你解决这个问题。
首先,我们需要定义一个变量来保存单词的数量。然后,我们可以使用循环来遍历输入的文本,并在遇到空格或换行符时增加单词计数器的值。最后,我们将输出单词计数器的值即可。
以下是一个简单的实现:
```c
#include <stdio.h>
#include <ctype.h> // 用于判断字符类型
int main() {
int word_count = 0; // 定义单词计数器并初始化为0
char c, prev_c = ' '; // 用于保存当前字符和上一个字符
printf("请输入一段文本:\n");
while ((c = getchar()) != '\n') { // 读取输入的文本,直到遇到换行符
if (!isspace(c) && isspace(prev_c)) { // 判断当前字符是否为单词的开头
word_count++; // 如果是,增加单词计数器的值
}
prev_c = c; // 保存当前字符
}
printf("输入的文本中有 %d 个单词。\n", word_count);
return 0;
}
```
这个程序会提示你输入一段文本,然后统计其中有多少个单词。你可以根据需要进行修改和扩展。
编译原理中怎么识别首字母大写的单词,用C语言实现
对于识别首字母大写的单词,可以使用C语言中的isupper函数判断首字母是否为大写,然后再根据单词的结尾是否为标点符号或者空格来判断单词是否结束。具体实现可以参考以下代码:
```C
#include <stdio.h>
#include <ctype.h> //引入isupper函数
int main()
{
char str[100];
printf("请输入一段英文文本:");
fgets(str, 100, stdin); //从标准输入流中读取文本
int length = strlen(str);
int i, start = 0, end = 0; //start和end分别表示单词的起始位置和结束位置
for(i = 0; i < length; i++)
{
if(!isalpha(str[i])) //如果当前字符不是字母
{
if(i > start + 1 && isupper(str[start])) //如果单词长度大于1且首字母是大写
{
printf("识别到一个大写单词:");
for(int j = start; j < end; j++)
putchar(str[j]); //输出单词
printf("\n");
}
start = end = i + 1; //重新设置单词的起始位置和结束位置
}
else
{
if(i == start || islower(str[i])) //如果是单词的第一个字母或者是小写字母
end = i + 1; //更新单词的结束位置
}
}
return 0;
}
```
当输入一段英文文本时,程序会识别其中的大写单词并输出,例如:
```
请输入一段英文文本:Hello world! This is A Test.
识别到一个大写单词:Hello
识别到一个大写单词:This
识别到一个大写单词:Test
```