C语言,字符进行加减,请问哪里出错了?

Python015

C语言,字符进行加减,请问哪里出错了?,第1张

a和b运算后结果可能是两位数,你这样去加个48,算出来的是个什么呢?这时候不能用字符了,应该用字串,用sprintf把数字转换成字串。

比如 6+8 = 14

要是用14+48 = 62,这个62是个啥呢?

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

}

}

(1) C语言中没有 字符串相减 运算。

(2) C语言中 有 单个字符 相减 运算。

例如,把字符串"1234"里的各个数字字符转成整型,存入整型数组:

int i,x[4]

char str[]="1234"

for (i=0i<4i++) x[i] = str[i] - '0'

例如, 把字符串中字母,小写变大写:

char str[]="aBcxYz"

int i

for (i=0i<strlen(str)i++)

if (str[i] >='a' &&str[i] <='z') str[i] = str[i] -'a' + 'A'

(3) 字符串大小比较 用 strcmp() 或 strncmp() 函数

例如:

if (strcmp(a,b) == 0) printf(" string a and b are the same\n")

if (strcmp(a,b) >0) printf(" string a is bigger than b\n")