注册 登录
编程论坛 C语言论坛

关于使用指针实现字符串拼接的问题,望解答

keka 发布于 2020-06-17 12:12, 1867 次点击
代码如下:
#include<stdio.h>
char* Mystrcat(char* str1, char* str2)
{
    char* outcome = str1;
    while (*str1)
        str1++;
    while (*str1++ = *str2++);
    return outcome;
}

int main(void)
{
   

    char str1[14];
    char str2[14];
    printf("输入第一个字符串:");
    scanf("%s", &str1);
    printf("输入第二个字符串:");
    scanf("%s", &str2);
    Mystrcat(str1, str2);
    printf("拼接后的字符串是:%s\n", str1);
}
我想知道的是自定义函数中的两个while循环的原理,我看不懂、理解不了它是怎么将两个字符串拼接起来的。
求助
5 回复
#2
rjsp2020-06-17 12:43
while( *str1 != '\0' )
    str1++;
while( (*str1++=*str2++) != '\0' );


加了红色部分的代码能看懂吗?若还是看不懂,我没办法了
#3
keka2020-06-17 22:30
回复 楼主 keka
多谢,不过我还是没搞懂两个字符串是咋拼接起来的原理。。。
#4
ditg2020-06-18 00:51
找到字符串一尾端0,从这里开始复制字符串二(包括0)

若还是看不懂,我也没办法了

[此贴子已经被作者于2020-6-18 02:30编辑过]

#5
八画小子2020-06-18 07:33
以下是引用keka在2020-6-17 22:30:38的发言:

多谢,不过我还是没搞懂两个字符串是咋拼接起来的原理。。。

给你两个字符串,第一个字符串是"abcde",第二个字符串是"fghijklmn"。不要管代码是怎么写的,你自己按照自己的想法在纸上手动拼接一下。如果还看不出来,建议你改行。
#6
keka2020-06-18 10:38
回复 4楼 ditg
懂了 多谢
1