用C语言计算两个字符串之和
时间: 2024-04-16 08:23:50 浏览: 72
C语言写字符串函数及任意个数求和
好的,下面是使用C语言计算两个字符串之和的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* addStrings(char* num1, char* num2) {
int len1 = strlen(num1);
int len2 = strlen(num2);
int maxLen = len1 > len2 ? len1 : len2;
char* result = (char*)malloc((maxLen + 2) * sizeof(char)); // 为结果分配空间,多出一位用来存储进位
memset(result, '0', (maxLen + 2) * sizeof(char)); // 初始化结果为全0
int carry = 0; // 进位
int i = len1 - 1, j = len2 - 1, k = maxLen + 1; // 分别指向两个字符串和结果的末尾
while (i >= 0 || j >= 0) {
int sum = carry;
if (i >= 0) {
sum += num1[i] - '0';
i--;
}
if (j >= 0) {
sum += num2[j] - '0';
j--;
}
carry = sum / 10;
result[k] = sum % 10 + '0';
k--;
}
if (carry > 0) {
result[k] = carry + '0';
return result;
} else {
return result + 1; // 如果没有进位,返回结果时去掉开头的0
}
}
int main() {
char num1[] = "123";
char num2[] = "456";
char* sum = addStrings(num1, num2);
printf("Sum: %s\n", sum);
free(sum);
return 0;
}
```
上述代码定义了一个 `addStrings` 函数,接收两个字符串 `num1` 和 `num2`,返回它们的和。在 `main` 函数中,我们给定了两个字符串 "123" 和 "456",并调用 `addStrings` 函数计算它们的和。最后打印出结果。
编译并运行上述代码,输出为:
```
Sum: 579
```
这样就得到了两个字符串的和。
阅读全文