C语言 字符串加减问题,请个位进来看看

我这个是用atoi函数转换的,我想把输入的数加起来得出结果,可是我输入的数是字符,所以输入的数得加个空格,如:23+3-10这样才能输出结果;但是我不想加空格也能输出结果... 我这个是用atoi函数转换的,我想把输入的数加起来得出结果,可是我输入的数是字符,所以输入的数得加个空格,如:23 +3 -10这样才能输出结果;但是我不想加空格也能输出结果,该怎么做
void recon(char arr[], int *value);

int main() {
char arr[250];
char ch = 0;
int value = 0;
int a = 0;
int c = 0 ;
int i = 0;
for (i = 0; i < 3; i++) {
scanf("%s", arr);
recon(arr, &value);
c += value;
}
printf("%d\n", c);
}

void recon(char arr[], int *value) {
char temporary[250];
char ch = 0;
size_t at = 0;
char c = 0;

bzero(temporary, sizeof(char) * 32);

if (arr[0] == '+' || arr[0] == '-') {
temporary[at++] = arr[0];
}
do {
ch = arr[at];

if (ch == '+' || ch == '-' || ch == 0) {
break;
} else {
temporary[at++] = ch;
}
} while (1);
*value = atoi(temporary);
}
展开
 我来答
匿名用户
推荐于2016-07-07
展开全部
void recon(char arr[], int *value);

int main() {
char arr[250];
char ch = 0;
int value 搭弯坦= 0;
int a = 0;
int c = 0;
int i = 0;

gets(arr);
recon(arr, &value);


printf("%d\n", value);
}

void recon(char arr[], int *value) {
char temp[250];
char ch = 0;
size_t at = 0,i=0;
char c = 0;
int s = 0;

while 知桐(arr[i]!='\0'){
at = 0;
memset(temp, 0, sizeof(char)* 32);
if 闹橘(arr[i] == '+' || arr[i] == '-') {
temp[at++] = arr[i++];
}
do {
ch = arr[i];

if (ch == '+' || ch == '-' || ch == 0) {
break;
}
else {
temp[at++] = ch; i++;
}
} while (1);
s = atoi(temp);
*value += s;
}

}
bnfarseer
2014-12-18 · 超过16用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:29.9万
展开全部
要是你自己写的,说说你就明首者仔白嫌手了
1,输入用getline读取一行,放进数组里,数组大小80
2,从字符数组中找出数据和运算符
从第一个为数字的字符起始,到第一个非数字的者汪字符截止,拷贝出来
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式