16. 從鍵盤(pán)輸入任意長(cháng)度的字符串,統計各字母個(gè)數
/*從鍵盤(pán)讀入不超過(guò)SIZE個(gè)(SIZE是程序中定義的常量)
*的任意長(cháng)度的字符串,要求分別統計出出現在該字符
*串中的各字母的個(gè)數(區分大小寫(xiě))。
*/
#include <stdio.h>
/*聲明常量SIZE存儲最大的字符串長(cháng)度,值為127*/
#define SIZE 127
/*聲明無(wú)返回值的函數void fuzhi(int[]),讀取字符串*/
void fuzhi(int[]);
/*聲明無(wú)返回值的函數void count(int[],char[]),統計
*字符串中各字母的個(gè)數
*/
void count(int[],char[]);
/*聲明無(wú)返回值的函數void printresult(int[]),輸出
*統計結果。
*/
void printresult(int[]);
/*聲明一個(gè)全局變量*/
int a=1;
main()
{
char str[SIZE];
int letter[SIZE]={0};
printf("請輸入長(cháng)度不超過(guò)%d的任意字符串,以‘#’結束:\n",SIZE);
/*分別調用三個(gè)函數完成字符的讀入,字母的統計,統計結果的輸出*/
fuzhi(str);
count(letter,str);
printf("該字符串中有:\n");
printresult(letter);
return(0);
}
/*定義無(wú)返回值的函數void fuzhi(int[]),讀取字符串*/
void fuzhi(char str[])
{
int i=1;
/*讀取第一個(gè)字符*/
scanf("%c",&str[0]);
/*讀取字符并計數,到‘#’結束*/
while(str[i-1]!='#')
{
scanf("%c",&str[i]);
i=i+1;
a=a+1;
}
}
/*定義無(wú)返回值的函數void count(int[],char[]),統計
*字符串中各字母的個(gè)數
*/
void count(int letter[],char str[])
{
int i;
/*統計各字母個(gè)數*/
for(i=0;i<=a;i++)
{
letter[str[i]]+=1;
}
}
/*定義無(wú)返回值的函數void printresult(int[]),輸出
*統計結果。
*/
void printresult(int letter[])
{
int i;
/*選擇字母的信息輸出*/
for(i='A';i<='Z';i++)
{
if(letter[i]!=0)
printf("%d個(gè)%c\n",letter[i],i);
}
for(i='a';i<='z';i++)
{
if(letter[i]!=0)
printf("%d個(gè)%c\n",letter[i],i);
}
}

聯(lián)系客服