使用指针将字符串从源附加到目标
Appending a string from source to destination with the use of pointers
我正在尝试使用指针重写一个字符串追加函数。我的字符串追加函数没有明确使用指针,看起来像这样:
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 += 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
精炼代码如下:
void append_a_string(char *a, char *b) {
a += strlen(a);
while (*b) {
*a++ = *b++;
}
*a = '[=10=]';
}
a
需要空终端,而不是 b
。
我正在尝试使用指针重写一个字符串追加函数。我的字符串追加函数没有明确使用指针,看起来像这样:
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 += 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
精炼代码如下:
void append_a_string(char *a, char *b) {
a += strlen(a);
while (*b) {
*a++ = *b++;
}
*a = '[=10=]';
}
a
需要空终端,而不是 b
。