c - 使用指针将字符串从源附加到目标

标签 c pointers c-strings

我正在尝试使用指针重写字符串附加函数。我的字符串附加函数没有显式使用指针,看起来像这样:

void append_a_string(char a[], b[]) {
    int i, j;
    j = length of string a;
    while (b[i]) {
        a[i] = b[i]
            i++;
        j++;
    }
    b[j] = 0;
}

我使用预制函数获取字符串“a”的长度。我很困惑在这种情况下如何使用指针。这是我到目前为止所拥有的:

void append_a_string(char *a, char *b) {
    a = length of string a;
    while (b) {
        b = a;
        a++;
        b++;
    }
    b = 0;
}

最佳答案

这是精炼的代码:

void append_a_string(char *a, char *b) {
    a += strlen(a);
    while (*b) {
        *a++ = *b++;
    }
    *a = '\0';
}

需要空终端的是 a,而不是 b

关于c - 使用指针将字符串从源附加到目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274668/

相关文章:

c - 在C中的两个字符串之间添加空格

c - 有条件地列出字符串数组

读取字符的 C 程序应该在换行符处停止,但并没有停止

c - 如何在编译 clang 时包含 GLUT

c - 字符串中的 `% a` 读取为内存中的一个点

c - 将带有空格的字符串拆分为 C 中的字符串 vector

c - 在 printf-in 非 0 终止字符串中使用精度的可移植性

char 指针在两种不同情况下的行为不同

将 double(不是指针)转换为 void 指针

C++ 将数组作为值/指针发送的区别