c語言 隨機輸入一個字符串,統(tǒng)計該串中每個數字字符(0,1,2,3,4,5,6,7, 8,9)出現的次數。 c語言 對于給定的一個字符串,統(tǒng)計其中數字字符出現的次數。
思路:統(tǒng)計字符串中每個數字字符出現的個數可以先定義一個整數數組a大小是10,依次保存0-9字符出現個數,遍歷字符串,判斷該字符是否是數字字符,如果是對應的數組元素自加1。
參考代碼:
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
int i,n,num[10];
gets(a);
n=strlen(a);
for(i=0;i<10;i++){
num[i]=0;
}
for(i=0;i<n;i++)
if(a[i]>='0'&&a[i]<='9')
num[a[i]-'0']++;
for(i=0;i<10;i++)
printf("%d ",num[i]);
return 0;
}
/*
輸出:
ads51df0a3df9d87f89ads4fd0f3adsf21sdf47d89f9adsf65as1d2f3asd
2 3 2 3 2 2 1 2 3 4
*/
#include<stdio.h>
int main(){
int i,num[10]={0};
char c,s[100];
gets(s);
for(i=0; s[i]; i++){
c=s[i];
if(c>='0' && c<='9')
num[c-48]++;
}
for(i=0; i<10; i++)
printf("%d:\t%d\n",i,num[i]);
}
gets(ch)
for(i=0;ch(i)!='\n';i++)
if (ch[i]='0')
num[0]++;
if (ch[I]='1')
num[1]++;
就像這樣輸下去 最后printf num[0-9]
#include<stdio.h>
int main(){
char ch;
int num[10]={0},i=0;
do{
ch = getchar();
switch(ch){
case '0':num[0]++;break;
case '1':num[1]++;break;
case '2':num[2]++;break;
case '3':num[3]++;break;
case '4':num[4]++;break;
case '5':num[5]++;break;
case '6':num[6]++;break;
case '7':num[7]++;break;
case '8':num[8]++;break;
case '9':num[9]++;break;
}
} while( ch != '\n' ) ;
while(i<10)
printf( "\nnum[%d]==>%d\n",i++, num[i] );
return 0;
}
字符串輸入
char c[100];
scanf("%s",c);
#include <stdio.h>
int main()
{
char a[100];
int num[10]={0};
int i=0;
scanf("%s",a);
while(a[i]!='\0')
{
if(a[i]>'0' && a[i]<'9')
num[a[i]-'0']++;
i++;
}
for(i=0;i<10;i++)
printf("%d的個數為%d\n",i,a[i]);
}
相關評說:
石嘴山市嚙合: ______ chara[1000];inti=0;b[52]={0};gets(a);while(a[i]){if(a[i]>='a'&&a[i]='A'&&a[i]
石嘴山市嚙合: ______ 展開全部#include #include void main() { int a=0,b=0,i; char c[300]; printf("請輸入一個少于300字符的字符串:"); gets(c); for(i=0;i<300,c[i]!='\0';i++) { if(c[i]==' ') a++; else b++; } printf("字符串中空格字符有%d個,非空格字符有%d個\n",a,b); } 謝謝采納!
石嘴山市嚙合: ______ #include <stdio.h> void fun(char *s, int *t) { int i, n; n=0; for(i=0; s[i] !=NULL; i++) if(s[i]>='0'&&s[i]<= '9') n++; *t=n; } main() { char s[80]="abcdef35adgh3kjsdf7"; int t; printf("\nThe original string is : %s\n",s); fun(s,&t); printf("\nThe result is : %d\n",t); } 你可以參考一下
石嘴山市嚙合: ______ 幫你優(yōu)化了一下,再試試吧 #include<stdio.h> int main() { char t[500]; //題目說了,不超過500個字符 int n,i,j,k,a,b,c,d; scanf("%d",&n);getchar(); //用getchar()來過濾掉本行的回車 for(i=0;i<n;i++){ a=b=c=d=0; for(j=0;j<500;j++){ t[j]=...
石嘴山市嚙合: ______ 用string.h下的strlen();函數;或者用一個循環(huán)遇到'\0',即是字符串的結束.
石嘴山市嚙合: ______ 下面這句有錯: for(i=0;i<N;i++) 需要修改為: for(i=0;all[i];i++) 因為你數組定義為100個長度,但是實際輸入的并沒有這么多,循環(huán)只對應該實際輸入的內容進行判斷.
石嘴山市嚙合: ______ 這個程序寫起來有些費事兒, 這個題目還是很不錯的,建議你還是自己寫, 對于自己的提高還有很有幫助的. 實現方法: 數據結構選擇: 二維鏈表(要是沒學過,用二維數組也行,但是推薦使用二維鏈表,這樣效率高且buffer消耗最小) 實現...
石嘴山市嚙合: ______ int main() { char str[50]; int i; char * p; int num_space; int num_not_space; printf("please input a string:\n"); str[0]=getchar(); i=0; while(str[i]!='\n') { i++; str[i]=getchar(); } str[i]='\0'; printf("the string is %s\n",str); p=str; num_space=0; num_not_...
石嘴山市嚙合: ______ 代碼: #include <stdio.h>void main(){char string[100];int i,num=0,word=0;char c;gets(string);for(i=0;(c=string[i])!='\0';i++)if(c==' ')word=0;else if(word==0){word=1;num++;}printf("There are%d words in the line.\n",num);} 效果圖: 【酷_酷_幣】為您服務...
石嘴山市嚙合: ______ #include #include char count[100];char str[1024];int main(){ while(gets(str)){ memset(count,...