題目要求:
編寫程式,輸入一個長度不超過40的字元串s,統計其中大寫字母、小寫字母、數字字元、空格及其其他字元的個數。
例如:輸入:Ab c2:3dA A709 bM.c454>AA#[email protected],A
輸出:8 5 11 3 6,
有好幾個版本,如需要輸入字元數的,不需要輸入字元數的
c++是這樣的,c++和c版本主要是輸入輸出的差別:
#include <iostream>
//#include<stdio.h>
//#include<string.h>
using namespace std;
int main(){
int dx = 0,xx = 0,sz = 0,qt = 0,kg = 0; //大寫字母,小寫字母,數字,空格,其它字元個數,初值為0。
int n=44; //字元數組最大的大小。
char* arr=new char[n+1]; //定義字元數組arr,包含n個字元,最後一位為空字元。
cout<<"輸入字元串";
cin.get(arr,n);
int sum;
cout<<"輸入實際字元個數";
cin>>sum;
for(int i=0;i<sum;i++){
if ('Z'>=arr[i]&&(arr[i]>='A'))
dx++;
else if (('z'>=arr[i])&&(arr[i]>='a'))
xx++;
else if (('9'>=arr[i])&&(arr[i]>='0'))
sz++;
else if(arr[i]==' ')
kg++;
else qt++;
}
cout<<dx<<' '<<xx<<' '<<sz<<' '<<kg<<' '<<qt;
return 0;
}
對于是否需要輸入字元串長度(就是字元個數),可以采用strlen函數自動統計字元長度。用于循環是的限制,或者在for哪裡for(i=0;arr[i]!='\0';i++)當arr為空是結束循環也行。
算法那一塊的話沒什麼好說的,不過在輸入哪裡需要注意的是cin.get(arr,n)輸入時可以包括空格,單單是cin遇到空格會停止的,
是以改進一下就是:這裡是當arr[i]='\0'時停止循環,采用cin.get()函數輸入
#include <iostream>
using namespace std;
int main(){
int dx = 0,xx = 0,sz = 0,qt = 0,kg = 0; //大寫字母,小寫字母,數字,空格,其它字元個數,初值為0。
int n=44; //字元數組最大的大小。
char* arr=new char[n+1]; //定義字元數組arr,包含n個字元,最後一位為空字元。
cout<<"輸入字元串";
cin.get(arr,n);
for(int i=0;arr[i]!='\0';i++){
if ('Z'>=arr[i]&&(arr[i]>='A'))
dx++;
else if (('z'>=arr[i])&&(arr[i]>='a'))
xx++;
else if (('9'>=arr[i])&&(arr[i]>='0'))
sz++;
else if(arr[i]==' ')
kg++;
else qt++;
}
cout<<dx<<' '<<xx<<' '<<sz<<' '<<kg<<' '<<qt;
return 0;
}
c語言可以這樣這裡采用strlen統計字元串長度來結束循環,采用gets()輸入字元串,
#include<stdio.h>
#include<string.h>
int main(){
int dx = 0,xx = 0,sz = 0,qt = 0,kg = 0; //大寫字母,小寫字母,數字,空格,其它字元個數,初值為0。
int n=40; //字元數組最大的大小。
char* arr=new char[n+1]; //定義字元數組arr,包含n個字元,最後一位為空字元。
gets(arr);
n = strlen(arr);//統計字元串大小
for(int i=0;i<n;i++){
if ('Z'>=arr[i]&&(arr[i]>='A'))//是否為大寫
dx++;
else if (('z'>=arr[i])&&(arr[i]>='a'))//是否為小寫
xx++;
else if (('9'>=arr[i])&&(arr[i]>='0')) //是否為數字
sz++;
else if(arr[i]==' ')//是否為空格
kg++;
else qt++;//其他字元
}
printf("%d %d %d %d %d",dx,xx,sz,kg,qt);
return 0;
}
總體難度可能就是輸入那裡和循環的問題,思路就是輸入一個字元串,然後從字元串第一個字元開始判斷字元類型,對應類型數加1,