社区
C语言 帖子详情 请问用C语言可以实现字符串的加法?谢谢 tflovecls 2006-11-20 10:16:16 最近遇到个问题,就是我想用C语言来实现字符串的加法,有没有这样的函数啊? JAVA中有"+"的重载,不知道C语言呢?是不是还要自己编个函数啊??
谢谢!!!
...全文
1002 13 打赏 收藏 请问用C语言可以实现字符串的加法?谢谢 最近遇到个问题,就是我想用C语言来实现字符串的加法,有没有这样的函数啊? JAVA中有"+"的重载,不知道C语言呢?是不是还要自己编个函数啊?? 谢谢!!! 复制链接
扫一扫 分享 转发到动态 举报 AI 作业
写回复 配置赞助广告取 消
确 定
用AI写文章 13 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 tflovecls 2006-11-21 打赏举报 回复 谢谢各位大哥,高手的指点!!! 挺拔的劲松 2006-11-21 打赏举报 回复 看来是想做大数的加法运算吧.
把每一位的字符转为整数相加,将得到的结果存数另一个数组,如果相加结果为两位时就要进位,相加时有进位还要加上进位,大数的加法运算记得以前讨论过.你可以从网上找一下.
挺拔的劲松 2006-11-21 打赏举报 回复 看来是想做大数的加法运算吧.
把每一位的字符转为整数相加,将得到的结果存数另一个数组,如果相加为两们时就要进位,相加时有进位还要加上进位,大数的加法运算记得以前讨论过.你可以从网上找一下. jixingzhong 2006-11-21 打赏举报 回复 #include
#include
/*三个参数, 第一、二个是两个加操作数,用于输入; 第三个是 结果,用于输出*/
char * add(char *op1, char *op2, char *result)
{
int tmp = atoi(op1)+atoi(op2);
result = itoa(tmp,result,10);
return result;
}
int main()
{
char a[]="123", b[]="234", c[10];
add(a, b, c);
printf("%s + %s = %s\n", a, b, c);
system("PAUSE");
return 0;
} jixingzhong 2006-11-21 打赏举报 回复 先把字符串 转换过来为整数,
然后进行 加
然后 再转换回去为字符串 ~ 飞哥 2006-11-21 打赏举报 回复 int tmp = atoi(a)+atoi(b);
printf("%s\n",itoa(tmp,c,10));
char *itoa(int value, char *string, int radix)/////////////include stdlib.h 飞哥 2006-11-21 打赏举报 回复 char a[]="123",b[]="234";
char c[]="357"
weiym 2006-11-21 打赏举报 回复 一定要是C吗,C语言实现不了重载操作符的
C++的话用std::string,自己实现各字符串类也可以,重载加号就可以了 飞哥 2006-11-21 打赏举报 回复 按照你的char类型
似乎就有问题了
char是一个字节
表示不了123
tflovecls 2006-11-21 打赏举报 回复 各位高手可能没明白我的意思!我指的不是字符串连接!举个例子:
char a="123",b="234";
char c="357";我是想让c=123+234=357,然后再转化为字符串! todototry 2006-11-20 打赏举报 回复 #include
#include
#include
#define err_OK 0
#define err_NOENOUGHPLACE 1
int addstr(const char * pstr1, const char * pstr2, char * pdst, unsigned int sizeofreturn)
{
if (sizeofreturn <= (strlen(pstr1) + strlen(pstr2)))
{
printf("no enough space to place the string!\n");
return err_NOENOUGHPLACE;
}
else
{
ZeroMemory(pdst, sizeofreturn);
strcpy(pdst, pstr1);
strcat(pdst, pstr2);
return err_OK;
}
}
int main()
{
char str1[3] = "ok";
char str2[5] = "okok";
char str[10];
if(addstr(str1, str2, str, 10) == err_OK)
{
printf("%s\n", str);
}
else
{
return 1;
}
char strerr[3];
if (addstr(str1, str2, strerr, 3) == err_OK)
{
printf("%s\n", strerr);
}
else
{
return 1;
}
return 0;
}
个人意见,高手多多指教 lj860603 2006-11-20 打赏举报 回复 用strcat可以了;如果你想自己写个也可以这样写个函数:
void MyStrcat(char sour[], const char des[])
{
while (*sour++)
;
for (--sour; *sour++ = *des++; )
;
} 晨星 2006-11-20 打赏举报 回复 strcat。
sprintf也能实现相应效果。 C代码实现超长整数字符串 相加,及相应执行程序 C代码实现超长整数字符串 相加,及相应执行程序 在C语言函数中调用汇编语言程序实现字符串的拷贝 在C语言函数中调用汇编语言程序实现字符串的拷贝:
其中:源串:const char *srcstr=“abcdefghij”
目标串:char *dststr C语言中压缩字符串的简单算法小结 主要介绍了C语言中可用于实现字符串压缩的简单算法小结,列举了包括哈夫曼算法等三个核心的程序实现算法,需要的朋友可以参考下 【C语言编程】PTA反转加法构造回文数算法实现:千位数级别高效字符串处理与回文检测 内容概要:本文介绍了通过C语言实现反转加法构造回文数的方法,能够处理1000位的大整数。文中详细展示了如何定义字符数组存储大整数,通过自定义函数而非调用现成函数来提高效率,实现对输入数字的反转、判别是否为回文以及最优字符大整数加法等操作。核心代码包括字符串指针反序判回文、字符串指针反转赋值、高效字符串指针反转赋值判回文等函数,利用goto语句实现循环,确保当数字不是回文时,将原数与其反转后的数相加,得到的新数继续判断,直到构造出回文数或达到设定的最大迭代次数(如10次)。
适合人群:有一定C语言编程基础的学习者,尤其是对大整数运算、字符串操作感兴趣的读者。
使用场景及目标:①理解C语言中字符数组表示大整数、字符串指针操作等底层机制;②掌握通过反转加法构造回文数的算法思想,熟悉goto语句控制流程的应用。
其他说明:此代码示例强调了自定义函数在处理特定任务时的高效性,读者可以在此基础上进一步优化算法,探索更多关于大整数运算的知识。 利用C语言库函数实现常见的字符串操作.pdf 利用C语言库函数实现常见的字符串操作.pdf
C语言
70,025
社区成员
243,260
社区内容
发帖 与我相关 我的任务 C语言 C语言相关问题讨论 复制链接
扫一扫 分享 确定 社区描述 C语言相关问题讨论 社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告 试试用AI创作助手写篇文章吧
+ 用AI写文章