c语言一串字符串中提取数字并相加的问题

如果给出字符串htr475ftu8kafda23dg56将4758与2356相加用函数、数组的话是这样:#include<stdio.h>intparse(char*a){intn=0;while(*a){if(*a>='0'&&*a<='9')n=n*10+*a-'0';++a;}retur... 如果给出字符串 htr475ftu8k afda23dg56 将4758与2356相加 用函数、数组的话是这样: #include <stdio.h> int parse(char* a) { int n = 0; while(*a) { if(*a >= '0' && *a <= '9') n = n * 10 + *a - '0'; ++a; } return n; } int main() { char a[123], b[123]; int x, y; gets(a); gets(b); x = parse(a); y = parse(b); printf("%d+%d=%d\n", x, y, x + y); } 但如果不用函数数组应该怎么做呢?用循环等基础语句~求教~ 不要保存 直接输出就行了 。。。这个是作业 展开

#include<stdio.h>
main()
{
char
x;
char
input1='\0';
char
input2='\0';
int
number1=0;
int
number2=0;
printf("请输入字符串1:(输入?结束)");//输入?作为字符串1的结束符
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input1=x;
if(input1>='0'&&input1<='9')//每检查到一个数字就要乘10,进一位
number1=number1*10+input1-'0';//比如字符'9'-'0'之后的数是数字9
}
x='\0';//将字符x重置值,因为原来是等于?的
printf("请输入字符串2:(输入?结束)");
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input2=x;
if(input2>='0'&&input2<='9')
number2=number2*10+input2-'0';
}
printf("两串数之和为%d",number1+number2);
getch();
}//没有用到数组和指针,也没有调用函数,真不明作业这么多要求。。。
//希望能帮到你
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜