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

问题描述:

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

解题思路:

判断单词是否出现,可以用空格的出现来判断(连续的若干空格看做成一个),若当前字符为空格,表明word未出现,当前字符非空格,之前字符为空格表明新单词出现,count++,之前字符是否为空格,用状态标志位word来标记

代码如下:

#include<stdio.h>   //printf
#include<string.h>  //gets
#include<stdlib.h>  //system

#define MAXLENTH 1000 //字符数组的最大容量
int main()
{
	system("title count the number of 9");//设置cmd窗口标题
	system("mode con cols=100 lines=100");//设置窗口宽度和高度
	system("color 0A");                   //设置幕布和字体颜色

	char string[MAXLENTH];//存放终端输入的一段字符
	char *ch = string;    //指向该数组
	int count = 0;        //统计单词个数
	int word = 0;         //状态标志位,出现新单词(当前字符非空格,之前字符为空格)word=1,否则word = 0

	printf("please input the charactors you want to count the words:\n");
	gets(string);

	for(;*ch != '\0';++ch)
	{
		if(*ch == ' ')    //当前字符为‘空格’,表明新单词未出现
		{
			word = 0;
		}
		else if(word == 0)//(当前字符非空格,之前字符为空格)word=1
		{
			count++;
			word = 1;
		}
	}

	printf("there are %d words\n",count);
	return 0;
}

也可以不用指针,代码如下:

#include<stdio.h>       //printf
#include<stdlib.h>      //system
#include<string.h>      //gets

int main()
{
	system("mode con cols=100 lines=100");
	system("color 0A");

	char string[100000];//存放一段字符
	int num = 0;        //统计单词个数
	int word = 0;       //单词是否出现的标志,0:新单词未出现,1:新单词出现
	int i;

	printf("please input the charactors that you want to count words:\n");
	gets(string);       //从终端输入想要统计单词个数的一段字符

	for(i=0;string[i] != '\0';++i)
	{
		if(string[i] == ' ')//当前字符是空格,表示新单词未出现word = 0
		{
			word = 0;
		}
		else if(word == 0)  //当前字符不是空格并且前一个字符是空格,表示新单词出现
		{
			word = 1;
			num++;
		}

	}

	printf("there are %d words in the charactors you put \n",num);

	system("pause");
	return 0;
}

时间: 2024-12-21 19:46:53

输入一行字符,统计其中有多少单词,单词之间用空格隔开的相关文章

输入一个字符统计其中有多少个单词。

#include<stdio.h> int main() { char string[81]; int i,num=0,word=0; char c; gets(string);    //输入一个字符串给字符组string for(i=0;(c=string[i])!='\0';i++)    //只要字符不是'\0'就继续执行循环 if(c==' ')word=0;   //如果是空字符,word为0 else if(word==0)     //如果不是空格字符并且word原值为0 {

华为OJ——输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数

题目描述 输入一行字符,分别统计出包含英文字母.空格.数字和其它字符的个数. 输入描述: 输入一行字符串,可以有空格 输出描述: 统计其中英文字符,空格字符,数字字符,其他字符的个数 输入例子: 1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][ 输出例子: 26 3 10 12 <span style="font-size:18px;">import java.util.*; public class Main { pu

c语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

输入一行字符,分别统计出其中英文字母.空格.数字和其他字符的个数. 解:程序: #include <stdio.h> int main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:"); while ((c=getchar())!='\n') { if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= '

代码实现:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

import java.util.Scanner; import java.util.TreeMap; //输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一行字符:"); String s = sc.nextLine(); c

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用while语句,条件为输入的字符不为 '\n '. 1 package com.li.FiftyAlgorthm; 2 3 import java.util.Scanner; 4 5 /** 6 * 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 7 * 8 * 程序分析:利用while语句,条件为输入的字符不为 '\n ' 9 * @author yejin 10 */ 11 pu

getchar()解决“输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数”

(1)getchar()函数的作用是从计算机终端(一般为键盘)获取一个无符号字符.getchar()函数只能接收一个字符,其函数值就是从输入设备获取到的字符. 该函数声明在stdio.h头文件中,使用的时候要包含stdio.h头文件.如: #include<stdio.h> int getchar(void); #include "stdio.h"  main() { char c;    int letters=0,space=0,digit=0,others=0;  

输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数-简单题

#include "stdafx.h" #include<iostream> using namespace std; void count(char *c) {  if(c==NULL)   return;  int zimu=0;  int shuzi=0;  int kongge=0;  int qita=0;  while(*c)  {   if((*c>='a'&&*c<='z')||(*c>='A'&&*c<

输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。

public static void main(String[] args){  int abcCount = 0;  int numCount = 0;  int SpaceCount = 0;  int otherCount = 0;  Scanner sc = new Scanner(System.in);  String str = sc.nextLine();  char[] ch = str.toCharArray();  for(int i = 0; i < ch.length;i

12.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

s="123 abc [email protected]# ^&*" digit_num=0 letter_num=0 space_num=0 other_num=0 for i in s: if i.isalpha(): letter_num+=1 elif i.isdigit(): digit_num+=1 elif i.isspace(): space_num+=1 else: other_num+=1 print u"共有字母:",letter_nu