输入一行字符,统计其中有多少个单词。单词之间用一个或者多个空格隔开

知识点:1、字符串的输入和输出:输入用gets(str),输出用puts(str)

gets(str),功能:从键盘读入一个字符串到str中,并自动在末尾加字符串结束标志“\0”。

puts(str),功能:将字符数组str中包含的字符串或str所代表的字符串输出,同时将“\0”转换成换行符。

2、运用字符串长度函数strlen(需加上#include<string.h>)

功能:求字符串长度(不包括‘\0’),由函数值返回。

注意点:字符是由‘\0’结尾。

思维1:

关键步骤:判断单词数,像How are you 这是3个单词,规律:在a前有空格,而a不是空格,单词数加1,注意:正常情况下第一个单词是没有空格的。

代码如下:

for(i=0;str[i]!='\0';i++)
 if(str[i]==' '&&str[i+1]!=' ')
    count++;

整体代码:

#include<stdio.h>
#include<string.h>
void main()
{
  int i,j,count=1;//从1开始算,第一个单词算一个
  char str[100];
  printf("请输入一串字符:");
  gets(str);
  j=strlen(str);
  for(i=0;str[i]!='\0';i++)
  {
     if(str[i]==' '&&str[i+1]!=' ')
       count++;
  }
  printf("这串字符有%d个单词",count);
}

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下 Python 代码来实现这个程序: ```python def count_characters(): text = [] try: while True: line = input() text.append(line) except EOFError: pass # 将多行文本合并为单个字符串 text = '\n'.join(text) # 统计空格数 space_count = text.count(' ') # 统计大小写字母数 lowercase_count = sum(1 for char in text if char.islower()) uppercase_count = sum(1 for char in text if char.isupper()) # 统计其他字符数 other_count = len(text) - space_count - lowercase_count - uppercase_count return space_count, lowercase_count, uppercase_count, other_count space_count, lowercase_count, uppercase_count, other_count = count_characters() print(f"空格数:{space_count}") print(f"大小写字母数:{lowercase_count + uppercase_count}") print(f"小写字母数:{lowercase_count}") print(f"大写字母数:{uppercase_count}") print(f"其他字符数:{other_count}") ``` 这个程序使用了一个 `count_characters` 函数来接收用户输入的多行文本,并统计空格数、大小写字母数和其他字符数。在函数中,我们使用了 `input` 函数来逐行接收用户输入的文本,直到用户输入完成(通过按下 Ctrl+D 或 Ctrl+Z)。 然后,我们将多行文本合并为单个字符串,并使用字符串的 `count` 方法来统计空格数。我们还使用了生成器表达式和字符的 `islower` 和 `isupper` 方法来统计大小写字母数。 最后,我们计算其他字符数,即总字符数减去空格数、大小写字母数。最后,我们将结果打印出来。 注意,在运行程序时,使用 Ctrl+D(Unix / Linux / macOS)或 Ctrl+Z(Windows)来标记输入完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值