实验6-9-字符串 统计一行文本的单词个数 (15分) 本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

#include<stdio.h>
int main()
{
  char a[1000];//字符数组
  gets(a);//获取字符串
  int i;//循环变量
  int l;//记录字符串长度
  int num = 0;//单词数量
  for(i=0;a[i]!='\0';i++);//记录字符串长度
  l=i;
  for(i=0;i<l;i++)//循环判断
  {
      if(a[i]!=' ' && a[i+1]==' ')//符合[?][空格]的情况
          num++;
      if(a[i]!=' ' && a[i+1]=='\0')//符合[?]['\0']的情况
          num++;
  }
  printf("%d\n",num);
  return 0; 
}


### 回答1: 可以使用字符串割函将输入的一行字符按照空格割成多个单词,然后统计每个单词的长度即可。具体实现可以使用循环遍历每个单词,使用字符串长度函计算单词长度。注意处理多个连续空格的情况,可以使用字符串去除函去除多余空格。 ### 回答2: 这道程序题的主要任务是读入一行字符,并且统计每个单词的长度。为了实现这个程序,我们可以使用一些字符串操作函。 首先,我们可以使用C++标准库函getline()来读取一行字符串,getline()的用法如下: ```c++ std::string line; std::getline(std::cin, line); ``` 此函的第一个参为输入流,通常是std::cin,第二个参为要读取到的字符串,这里使用std::string类型的变量line来存储读取的字符串。 读入字符串之后,我们可以使用一个循环来遍历该字符串,同时使用两个针start和end来记录当前单词的起始和结束位置。具体实现如下: ```c++ int start = 0, end = 0; for (int i = 0; i < line.size(); i++) { if (line[i] == &#39; &#39;) { // 检测到空格,代表当前单词结束 std::cout << end - start << &#39; &#39;; // 输出当前单词的长度 start = i + 1; // 下一个单词的起始位置 } else { end = i + 1; // 更新当前单词的结束位置 } } ``` 在循环中,我们首先判断当前字符是否为空格,如果是,代表当前单词结束,输出其长度,并且更新下一个单词的起始位置。如果不是空格,代表当前为单词的中间字符,更新当前单词的结束位置。 当循环结束时,最后一个单词的长度还没有输出,因此我们需要再次输出一次,具体实现如下: ```c++ std::cout << line.size() - start << std::endl; ``` 整个程序的完整代码如下: ```c++ #include <iostream> #include <string> int main() { std::string line; std::getline(std::cin, line); int start = 0, end = 0; for (int i = 0; i < line.size(); i++) { if (line[i] == &#39; &#39;) { std::cout << end - start << &#39; &#39;; start = i + 1; } else { end = i + 1; } } std::cout << line.size() - start << std::endl; return 0; } ``` 当我们输入一行字符串,例如: ``` Hello world this is an example! ``` 程序输出的结果为: ``` 5 5 4 2 3 7 ``` 这些别代表每个单词的长度。 ### 回答3: 本题需要编写一个程序来实现输入一行字符,并统计每个单词的长度。首先,程序需要读取用户输入的一行字符。在读取行字符之后,程序将遍历这一行字符,并在空格处计算单词的长度。当程序遍历每个字符时,它将找到第一个非空格符的位置,并计算出该单词的长度。此外,当程序找到一个空格符时,它将计算前一个单词的长度,并将此长度存储到一个数组中。程序继续遍历字符,直到达到行尾。在行尾处,程序会将最后一个单词的长度添加到组中。然后,程序将计算这个数组中每个元素的值,即每个单词的长度。对于计算出每个单词的长度之后,程序将打印出每个单词的长度,以及每个单词出现的次。这个程序可以帮助用户更好地理解输入字符中出现的单词的特征,例如单词的长度等。同时,这个程序还可以用来析和处理文本,例如对文章中的单词进行计,以及确定文本中的一些特定单词布情况。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值