标题:不使用strcat()函数进行字符串拼接,但无法实现
只看楼主
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
结帖率:90.38%
已结贴  问题点数:20 回复次数:5 
不使用strcat()函数进行字符串拼接,但无法实现
不使用strcat()函数进行字符串拼接,但无法实现。原因在哪?代码如下:
程序代码:
#include"stdio.h"
void function(char *p,char *q){
    int n=0;
    int m=0;
    for(;p[n]!='\0';)
        n++;
    for(;q[m]!='\0';)
        p[++n]=q[m++];
    p[n]='\0';
    printf("%s",p);
}
int main(void){
    char n[100]="asdfgh";
    char m[100]="zxcvbnm";
    function(n,m);
    return 0;
}

搜索更多相关主题的帖子: char int 字符串 函数 strcat 
2020-05-31 13:09
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:10 
p[n++]=q[m++];
另外不该在这个函数里输出,应该回主函数去输出。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-31 13:16
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
得分:0 
以下是引用forever74在2020-5-31 13:16:29的发言:

p[n++]=q[m++];
另外不该在这个函数里输出,应该回主函数去输出。

改成p[n++]=q[m++];后,在这个function函数里输出也可以实现。
2020-05-31 13:20
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
得分:10 
memcpy能用么
2020-05-31 14:38
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
以下是引用hffjhhh在2020-5-31 13:20:30的发言:


改成p[n++]=q[m++];后,在这个function函数里输出也可以实现。


可以实现是可以实现,
但是我们程序猿一族应该对自己有更高的要求是吧?
我看见类似的问题就要想,那个库函数如果是我写,我该怎么写?
于是,一个基本的要求就是非IO函数不要带有IO的蛇足。
一块砖如果长了四条腿,固然可以作为摆件,它就没法用来砌墙了。

相信我,一只猿要进化成狮,就要向这个方向思考。

[此贴子已经被作者于2020-5-31 18:52编辑过]


对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-31 18:47
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
得分:0 
有点失眠,实现个linux版的;书上现在都是用"stdio.h"了吗?(纯属请教)

static inline char *function(char *dest, const char *src)
{
    __asm__("cld;repne;scasb;decq %0;1:lodsb;stosb;testb %%al,%%al;jne 1b"
                    ::"D"(dest),"S"(src),"a"(0),"c"(0xffffffffffffffff));
    return dest;
}

梦想拥有一台龙芯3A-4000
2020-06-02 04:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501889-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.842854 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved