C语言的那些事——检测一段话里的单词个数

本文将介绍如何使用C语言编程来检测并计算一段话中包含的单词总数。通过简单的字符串处理和空格分隔,我们可以有效地实现这个功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//检测一段话里的单词个数


#include<stdio.h>
void main()
{
char str[100];
int i;
int n=0;
int flag=0;
printf("请输入一段英文文章:\n");
/* for(i=0;i<100;i++)
{
scanf("%c",&str[i]);
if(str[i]=='\n')
break;             //遇到回车就结束读取
}
*/
gets(str);  //也可以使用被注释掉的for循环来进行字符串读取
  printf("这段文章中单词个数为:");
### C语言中的输入函数 `scanf` 和 `getchar` #### 使用 `scanf` 进行字符和字符串输入 当使用 `scanf` 函数来处理字符和字符串输入时,需要注意不同类型的变量是否需要地址运算符 `&`。对于单个字符,确实需要用 `&` 来传递其内存位置;而对于字符数组,则不需要加上 `&` 符号,因为数组名本身就代表了首元素的地址。 下面是一个完整的程序示例展示了如何利用 `scanf` 同时获取一个单独的字符以及一串由多个字符组成的字符串: ```c #include <stdio.h> int main() { char singleChar; char stringArray[8]; printf("请输入一个字符和一个单词: "); scanf("%c %s", &singleChar, stringArray); printf("您刚刚输入的是 '%c' 和 '%s'\n", singleChar, stringArray); return 0; } ``` 这段代码会提示用户先输入一个字符再输入一个不超过7个字母长度的单词(考虑到终止符 `\0`),并将其分别保存至相应的变量中[^1]。 #### 利用 `getchar()` 获取单一字符 另一方面,如果只需要读取单个字符而不涉及其他复杂格式控制的话,可以考虑采用更简洁的方式——即调用标准库提供的 `getchar()` 函数。此函数每次只接收缓冲区里的下一个可用字符直到遇到文件结尾标志EOF为止,并返回该字符作为整数值表示形式。 这里给出一段简单演示 `getchar()` 功能的小例子: ```c #include <stdio.h> int main(){ int inputCharacter; printf("请输入任意字符:"); inputCharacter = getchar(); printf("你刚才输入的字符是:%c\n",inputCharacter ); return 0; } ``` 在这个实例里,通过 `printf` 提醒用户准备输入之后立即执行 `getchar()` 调用来捕获用户的按键动作并将结果赋给名为 `inputCharacter` 的整形变量以便后续打印输出[^2]. #### 处理多组连续输入的情况 有时可能希望在一个循环结构内持续不断地收集来自终端的标准输入直至特定条件满足才停止采集过程,在这种场景下也可以借助于 `scanf` 或者结合 `while` 循环配合 `getchar()` 实现类似功能。例如下面这个片段就是基于 `scanf` 对每条新输入做即时响应的同时计算所接收到字符串的实际长度: ```c #include <stdio.h> #include <string.h> int main(){ char userInputString[20]; while (scanf("%s",userInputString)!=EOF){ printf("[Length=%ld][Content='%s']\n", strlen(userInputString), userInputString ); } return 0; } ``` 上述代码段会在命令行界面等待用户依次键入若干语,每当检测到一次有效提交便立刻反馈当前条的具体信息,包括但不限于总字节数量及其确切表述内容[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值