73:字元統計★]題目描述:

lumotuweperfect發表於2013-03-09
// 73.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdio.h"
#include "string.h"

int main(int argc, char* argv[])
{
	char s[100];
	int alp, space, num, flag, i, word;
	flag =  1;
	alp  =  0;
	space = 0;
	num   = 0;
	word  = 0;
	while( gets(s) != NULL)
	{
		for(i=0; i<(int)strlen(s); i++)
		{
			if( s[i]==32 )    //空格
			{
				space++;
				if(flag == 1) word++;
				flag = 0;
			}
			else if( ( s[i]>=65 && s[i]<=90 ) || ( s[i]>=97 && s[i]<=122 )) //字母
			{
				alp++;
				flag = 1;
			}
			else if( s[i]>=48 && s[i]<=57 )  //數字
			{
				num++;
				flag = 1;
			}
		}
		if( s[0] == 32)               word--;
		if (s[strlen(s)-1] == 32)   word--;
		printf("%d %d %d %d\n",space,num,alp,++word);
		flag =  1;
		alp  =  0;
		space = 0;
		num   = 0;
		word  = 0;		
	}
	return 0;
}

字元統計


輸入:
有多組測試資料,每行一個字串,串長小於1e7
以EOF標誌結束程式。


輸出:
對於每組測試,每行輸出四個整數,第一個數是空格數,
第二個是數字字元個數,第三個是字母個數(包括大小寫)
第四個是單詞個數,被空格所分隔的任何非空字串都看作一個單詞




樣例輸入:
ABC abcd 12345
  ABCDEFG


樣例輸出:
2 5 7 3
2 0 7 1


限制:
Time     500ms
Memory  1000kb


難度:Very Easy[/mytable]


site:http://www.yzfy.org/dis/listpost.php?tid=418&extra=page%3D1


TIPS:

對於字串可以使用scanf函式。scanf函式以空格或者entr鍵結束接受字元;
如輸入 :abc     (後面很多空格)
但是 輸入到scanf的字串僅為abc。


對於輸入字串流,應使用gets函式。
gets

【1】函式:gets(字元指標)
【2】標頭檔案:stdio.h(c中),c++不需包含此標頭檔案
【3】原型:char*gets(char*buffer);

【4】功能:從stdio流中讀取字串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指標所指向的字元陣列中。換行符不作為讀取串的內容,讀取的換行符被轉換為null值,並由此來結束字串。


相關文章