比如 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")