输入一行字符,统计有多少个单词

时间:2019-11-15 12:46来源:计算机教程
输入一行字符,统计有多少个单词 解题思路: 关键:怎样确定出现一个新单词 方法:从第一个字符逐个进行检查,判断此字符是否为新单词的开头,如果是num 1,最后num的值就是单词总

输入一行字符,统计有多少个单词

解题思路:

 关键:怎样确定出现一个新单词

 方法:从第一个字符逐个进行检查,判断此字符是否为新单词的开头,如果是num 1,最后num的值就是单词总数

判断是否出现新单词,可以由是否由空格出现来决定(连续若干个空格作为出现一次空格,一行的开头空格不统计在内),若出现某个字符为非空格,而它前面的字符是空格,则表示新单词开始,此时num 1,如果当前字符为非空格,前面的字符也是非空格,则表示还是原来的单词,num不用加1

#include
int main()
{
 char string[100];
 int i,num=0,word=0;
 char c;
 gets(string);
 for(i=0;(c=string[i])!='';i  )
  if(c==' ')
   word = 0;
  else if(word==0)
  {
   word = 1;
   num  ;
  }
 printf(There are %d words in this line:
,num);
 return 0;
}

 

http://www.bkjia.com/cjjc/1027560.htmlwww.bkjia.comtruehttp://www.bkjia.com/cjjc/1027560.htmlTechArticle输入一行字符,统计有多少个单词 解题思路: 关键:怎样确定出现一个新单词 方法:从第一个字符逐个进行检查,判断此字符是否为新单...

检测字符串中有多少个单词改新--C语言谭浩强版例6.8

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

 

原解题思路:

    从第一个字符开始逐个字符进行检查,判断此字符是否是新单词的开头。判断是否出现新单词,可以由是否有空格出现来决定。如果测出某一个字符为非空格,而它的前面的字符是空格,则表示新的单词开始了。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    char string[81];
    int i, num=0,word =0;
    char c;
    gets(string);

    for(i=0; (c=string[i])!='\0'; i  )  //只要不是字符'\0'就继续循环
    {
        if(c==' ')
            word=0;
        else if (word==0)
        {
            word=1;
            num  ;
        }
    }
    printf("There are %d words in the line.n", num);
    return 0;
}

 

 

 

vnsc5858威尼斯城官网,改新版思路:

    单词后面出现一个不是字母的字符,则这个单词结束。扩展了字符串中的标点

 

/******************************************************

6.8   Count how many words

Plan:
    If a charactor is not a letter, and before it there is a letter,
count add

CREATE----------------------------
By:     Idooi Liu
Time:   2015/09/27-1022
----------------------------------

******************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

bool ifALetter(char charactor);

int main(void)
{
    int i,  number=0;
    char stringMe[100];

    gets(stringMe);

    for(i=0; i<100; i  )
    {
        if(stringMe[i 1]=='\0')           //出现字符'\0'结束循环
        {
            if(ifALetter(stringMe[i]))
                number  ;
            break;
        }

        //单词的最后一个字符判断,下一个字符不是字母,单词结束
        if(ifALetter(stringMe[i]) && !ifALetter(stringMe[i 1])) 
            number  ;
    }
    printf("There are %d words in the line.n", number);

    getchar();
    return 0;
}

//判断字符是否是字母
bool ifALetter(char x)
{
    if((x>64 && x<91) || (x>96&&x<122))
        return true;
    else
        return false;
}

 

 

http://www.bkjia.com/Cyy/1058729.htmlwww.bkjia.comtruehttp://www.bkjia.com/Cyy/1058729.htmlTechArticle检测字符串中有多少个单词改新--C语言谭浩强版例6.8 例6.8 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开 原解题思路:...

编辑:计算机教程 本文来源:输入一行字符,统计有多少个单词

关键词: