c语言输入一个字符串,求所有数字之和

2024-11-22 07:26:05
推荐回答(5个)
回答(1):

遍历整个字符串,判断是否是数字,再计算累加和:

#include
#include
int main()
{
char a[1000];//定义字符串 
int i,sum=0,n;
gets(a);//输入字符串 
n=strlen(a);//求字符串长度 
for(i=0;i if(a[i]>='0'&&a[i]<='9')//如果是数字就累加 
sum+=a[i]-'0';
printf("字符串中数字的和为:%d\n",sum);//保留数字累加和 
return 0;
}
/*
运行结果:
jkahf343124asdf asfdasdf1
字符串中数字的和为:18
*/

回答(2):

首先定义一个字符数组,然后将输入的字符串按%s格式化读取到该字符数组中,再从该数组的首地址依次访问,读取每一个字符,然后将其ASCII码值减去0的ASCII码值,就是该字符对应的数值,最后累加到一个int型变量中即可。

回答(3):

//运算过后才输出呢
#include "stdio.h"
#include "string.h"
main()
{
char s[20];
int i,sum=0;

printf("输入:");
scanf("%s",s);
for (i=0;s[i]!='\0';i++)
if(s[i]>='0' && s[i]<='9')
sum=sum+s[i]-48;
printf("所有数字之和:%d\n",sum);
printf("\n");

}

回答(4):

void staticsChar()

{

int nInput,nCount=0;

char ch[NUM];

while (1) {

nInput=getchar();

if(nInput=='\n' || nCount>=NUM){

break;

}

ch[nCount++]=nInput;

}

int a=0;int b=0;int c=0;int d=0;int e=0;int other=0;

for(int j=0;j
char temp=ch[j];

if(temp=='a'){a++;}

else if(temp=='b'){b++;}

else if(temp=='c'){c++;}

else if(temp=='d'){d++;}

else if(temp=='e'){e++;}

else{other++;}

}

printf("a=%d,b=%d,c=%d,d=%d,e=%d,other=%d\n",a,b,c,d,e,other);

}

回答(5):

scanf("%s",s);

改为

gets(s);