使用c语言 使用简单的c语言语句 不使用strlen等
(每种字符串长度不超过80个字符)。
从键盘输入的字符串中包含多个正整数。(This12345is a23456bc 98765test.)。(注意: 整数位数不超过10位数。)
完成:对字符串中的整数进行求和,并且显示求和结果。
结果应为:sum=134566
使用照片中提及的语句
可以参考:
#include <stdio.h>
#include<string.h>
int main(void)
{
char c1[80];
int i=0,j=0,sum=0;
int a[80]={0};
gets(c1);
i=j=0;
while(c1[i]!='\0'){
if(c1[i]>='0' && c1[i]<='9')
{a[j] = a[j] * 10 + (c1[i] - '0');}
else
{sum += a[j];
if (c1[i - 1] >= '0' && c1[i-1] <= '9')
j++;}
//printf("%c",a[i]);
i++;
}
printf("%d",sum);
}
int main()
{
int sum =0;
int flag = 0;
char str[100];
cout << "输入字符串:";
cin >> str;
int len = strlen(str);
cout << str << endl;
char temp[100];
memset(temp, 0, sizeof(temp));
int n=0;
for (int i=0; i<len; i++ )
{
if (str[i]>='0' && str[i] <= '9')
{
temp[n] = str[i];
n++;
flag =1;
}
else
{
if (flag == 1)
{
temp[n] ='\0';
cout << temp << endl;
sum += atoi(temp);
}
memset(temp, 0, sizeof(temp));
flag =0;
n=0;
}
}
cout << sum << endl;
return 0;
}
业务代码就是截图中的,接收键盘输入的字符串然后遍历就ok了。
代码如下,你提供的代码有些问题,我做了修改:
#include<stdio.h>
void main()
{
char c1[100];
int i = 0, j = 0;
int a[100] = {0};
int sum=0,cnt=0;
gets(c1);
while (c1[i] != '\0')
{
if (c1[i] >= '0' && c1[i] <= '9') //修改a为c1
a[j] = a[j] * 10 + (c1[i] - '0');
else
{
sum += a[j];
if (c1[i - 1] >= '0' && c1[i-1] <= '9')
j++;
}
i++;
}
sum+=a[j];
printf("%d",sum);
}