C语言练习题
给定两个字符串A, B将他们分别转成整形,相加后输出。
#include <stdio.h>
void main()
{
char a,b;
int result;
printf("输入两个字符:\n");
scanf("%c\n%c",&a,&b);
result=a-'0'+b-'0';
printf("结果是:%d\n",result);
}
仅供参考,谢谢!
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[19], b[19];
long result;
printf("输入两个字符串:\n");
scanf("%18s%18s", a, b);
result = atol(a) + atol(b);
printf("结果是:%ld\n", result);
return 0;
}
供参考:https://blog.csdn.net/xichengfengyulou/article/details/88711943
代码及运行结果如下:
#include <stdio.h>
int str_int(char* str)
{
int len = strlen(str); //求字符串长度
char* cur = str + len - 1; //cur 指向字符串中的最后一个数字
int ret = 0;
int tmp = 1;
while (cur >= str)
{
//数字字符0的ASCII码为 48
ret += (*cur - '0') * tmp;
//用来控制数字的权重
tmp *= 10;
cur--;
}
return ret;
}
int main()
{
char* A = "12345";
char* B = "54321";
int num1 = str_int(A); //str_int 函数返回字符串转成的整形
int num2 = str_int(B);
printf("%d + %d = %d\n", num1, num2, num1 + num2);
return 0;
}