1219: 统计字符串的单词个数

题目描述

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

输入

只有一行,保证只包含可见字符,且此行的所有字符数不超过100。

输出

一个整数,表示输入的一行字符中共有多少个单词。
请注意行尾输出换行。

样例输入

I am a program.

样例输出

4
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string.h>
 4 using namespace std;
 5 int main(){
 6     char str[110];
 7     while(NULL!=fgets(str,110,stdin)){
 8         int len=strlen(str);
 9         int flag=1,count=0;
10         for(int i=0;i<len-1;i++){
11             if(str[i]!=‘ ‘&&flag==1){
12                 flag=0;
13                 count++;
14             }
15             if(str[i]==‘ ‘&&flag==0){
16                 flag=1;
17             }
18         }
19         printf("%d\n",count);
20     }
21     return 0;
22 }

Mist Note:代码没事多看看,觉得写的还是比较简单的,这里有一个之前没有注意的问题,fgets函数的用法。

fgets只能读取N-1个字符,包括最后的‘\n‘,读完结束后系统将自动在最后加‘\0‘(gets读完结束后系统自动会将‘\n‘置换成‘\0‘)。

说到这里就有俩种情况了:

一:当你从键盘上输入<=N-1个字符(包括‘\n‘)时,那么字符串str会以‘\n\0’结尾。这就造成了strlen(str)比你想象的大 1 ,当然你可以通过下面代码将‘\n‘去掉。
1  if(str[strlen(str) - 1] == ‘\n‘) {      // 去掉换行符
2      str[strlen(str) - 1] = ‘\0‘;
3  }

二:当你从键盘上输入>N-1个字符(包括‘\n‘)时,那么字符串str会以‘\0‘结尾。

 

原文地址:https://www.cnblogs.com/mist2019/p/10354478.html

时间: 2024-08-04 20:29:46

1219: 统计字符串的单词个数的相关文章

PHP统计字符串里单词查询关键字

<?function full_count_words($str) {     //返回完整数组,包含字符串里每个单词 $words = str_word_count($str,1);     $result = array();     foreach ($words as $w) {         $lw = strtolower($w);         //判断单词是否是第一次出现,是则设置为1,否则就增加1 if (!(isset($result[$lw]))) {         

统计字符串中单词的个数

1.单纯统计单词个数,单词与单词之间只考虑空格的情况 // word_statistic.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <string> using namespace std; #define M 10000 #define N 20 int _tmain(int argc, _TCHAR* argv[]) { char str1[M]={0};

【C语言】输入一个字符串,统计其中的单词个数,将第一个单词的首字母改为大写,并输出改写后的字符串

#include<stdio.h> int main() { char a[100]; int i, j=1; printf("请输入一串字符:"); gets_s(a); for (i = 0; a[i] != '\0'; i++)/*找出单词个数*/ { if (a[i] == ' ') j += 1; } printf("单词个数:%d\n", j); if (a[0] >= 'a' && a[0] <= 'z')/*判

输出一串字符串中单词个数

#include <stdio.h> #include <stdlib.h> /* 输入一行字符串(单词和若干空格), 输出该行单词个数. */ int main(){ char ch, str[100]; int count = 0; gets(str); for (int j = 0; str[j] != '\0';++ j) if ((str[j + 1] == '\0') && (str[j] != ' ')) //到达末尾且不为空格,单词数+1 count

C 循环统计输入的单词个数和字符长度

#include <stdio.h> #include <Windows.h> int main(void) { char word[128]; int count = 0; int length = 0; printf("请输入任意多个单词:\n"); while (1) { if (scanf("%s",word) != -1) { count++; length += strlen(word); } else { break; } }

统计不同的单词个数。

Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束. Output 每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数. Sample Input you are my friend # Sample Outp

oracle统计字符串包含字符个数

函数:REGEXP_COUNT(); select REGEXP_COUNT('1,2,6,8,7,9',',') from dual 结果:5

统计文件中单词个数

import sys import string #import collections if len(sys.argv) == 1 or sys.argv[1] in {"-h", "--help"}: print("usage: uniqueword filename_1 filename_2 ... filename_n") sys.exit() else: words = {} # words = collections.defaultd

统计字符串中的单词数目

统计字符串中单词的数目,更复杂的话从一个文本中读出字符串并生成单词数目统计结果.         第一个问题:这个问题的解决方案是,字符串之所以可以成为单词就是因为有空格符的出现,那么对于字符串中单词的数目来说,只需要统计其中空格符出现的次数就可以了~~~ 第二个问题,从文本中读出字符串并统计每一个单词的统计结果,那么久需要借助于字典map了,每一个单词使用了一个位置 ,如果是已经出现的单词,那么就给相应的单词数量加一,如果没有出现在字符串中,那么就添加该单词. 对于一串字符串来说,如果需要对于