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

时间:2016-03-29 03:06:42

标签: 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;
}

2 个答案:

答案 0 :(得分:1)

以下是精炼代码:

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

a需要空终端,而不是b

答案 1 :(得分:0)

这就是您的代码应该如何:

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

您可以使用string.h中的函数:

#include<string.h>
strcpy(a+length_of_string_a, b); //if you know the length of a
strcat(a, b); //if you don't know the length of a