news 2026/9/26 5:05:34

字符串相加

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
字符串相加


易错点:指针从最后一位开始
各个循环条件不要写错了
malloc注意判断空,并且要多申请两个字节
进位逻辑
翻转堆区的内存保存的值

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char* addStrings(char* num1, char* num2) {
int len1 = strlen(num1);
int len2 = strlen(num2);
char* p1 = num1 + len1 - 1;//减去本身指向个位
char* p2 = num2 + len2 - 1;
char* d = (char*)malloc((len1 > len2 ? len1 : len2) + 2);//为啥要加二呢
if (d == NULL) {
printf("malloc申请失败\n");
return NULL;
}
//原因是有进位和\0末尾
int i = 0;
char carry = 0;//进位
while (i<len1||i<len2||carry==1) {
char k = 0, l = 0;
if (i < len1) {//i要取到len
k = *(p1-i) - '0';
}
if (i < len2) {
l = *(p2-i) - '0';
}
char sum = k + l + carry;
d[i] = sum % 10 + '0';
if (sum >= 10)carry = 1;
else carry = 0;
i++;
}
//翻转堆区的数据
int left = 0, right = i - 1;
while (left < right) {
char temp = d[left];
d[left] = d[right];
d[right] = temp;
left++, right--;
}
d[i] = '\0';
return d;
}
int main() {
char arr[100];
char brr[100];
printf("请输入两个数字\n");
while (scanf("%s %s", arr, brr) != EOF) {
printf("它们相加的结果是:");
char* p = addStrings(arr, brr);
printf("%s",p);
free(p);
printf("\n");
printf("请输入两个数字\n");

}

return 0;
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 5:05:29

Django学生宿舍管理系统毕设实战:从RBAC到WebSocket实时通知

张同学拿着U盘跑到实验室找我&#xff0c;说毕设选题批下来了&#xff0c;导师给的方向是django学生宿舍管理系统。我问他准备做成什么样&#xff0c;他说"就是能增删改查吧"。我当时就意识到&#xff0c;这题如果只停在增删改查&#xff0c;答辩时基本是送人头。宿舍…

作者头像 李华
网站建设 2026/9/26 5:05:09

C#通过OPC读取WinCC数据源码实战:连接、订阅与避坑指南

简介&#xff1a;这份程序源码面向C#开发人员与工控领域学习者&#xff0c;聚焦于通过OPC协议与西门子WinCC进行数据交互这一典型场景&#xff0c;帮助读者理解上位机如何稳定读取WinCC中的实时数据。资源以完整可编译的工程形式提供&#xff0c;包含窗体界面、业务逻辑与配置代…

作者头像 李华
网站建设 2026/9/26 5:04:19

CSS毛玻璃效果实战:backdrop-filter属性从入门到性能调优

1. 毛玻璃效果为什么突然火了——backdrop-filter的价值定位我最早注意到毛玻璃效果&#xff0c;是在做一套后台管理系统的时候。设计师给的设计稿里&#xff0c;侧边栏和顶部导航都带有一层半透明的磨砂质感&#xff0c;底下表格滚动时&#xff0c;内容透过导航栏能隐隐约约看…

作者头像 李华
网站建设 2026/9/26 5:01:03

桂电编译原理期末实战:语法树、DFA、LR(0)与FIRST/FOLLOW避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华