在 C 中实现 strcat() 函数
implement strcat() function in C
我试图在 C 中实现 strcat(),但一直坚持输出结果重复 src。
这是我的代码。
void my_strcat(char des[], char src[]) {
int i = 0, j = 0;
while (des[i] != '[=10=]')
i += 1;
while (src[j] != '[=10=]') {
des[i + j] = src[j];
j += 1;
}
des[i + j] = '[=10=]';
printf("%s", des);
}
int main() {
char des[1000], src[100];
for(int i = 0; i < 2; ++i) {
printf("src: ");
scanf("%s", src);
my_strcat(des, src);
}
printf("%s", des);
}
输出与我之前预期的不一样。例如:
来源:一个
来源:b
des: aabb
你可能想要这个:
#include <stdio.h>
#include <stdlib.h>
void my_strcat(char des[], const char src[]) { // better use const her
int i = 0, j = 0;
while (des[i] != '[=10=]')
i += 1;
while (src[j] != '[=10=]') {
des[i + j] = src[j];
j += 1;
}
des[i + j] = '[=10=]';
// printf("%s", des); // dont print des here
}
int main() {
char des[1000];
char src[100];
des[0] = 0; // initialize des to a zero length string
for (int i = 0; i < 2; ++i) {
printf("src: ");
scanf("%s", src);
my_strcat(des, src);
}
printf("%s", des); // print the destination
}
我试图在 C 中实现 strcat(),但一直坚持输出结果重复 src。
这是我的代码。
void my_strcat(char des[], char src[]) {
int i = 0, j = 0;
while (des[i] != '[=10=]')
i += 1;
while (src[j] != '[=10=]') {
des[i + j] = src[j];
j += 1;
}
des[i + j] = '[=10=]';
printf("%s", des);
}
int main() {
char des[1000], src[100];
for(int i = 0; i < 2; ++i) {
printf("src: ");
scanf("%s", src);
my_strcat(des, src);
}
printf("%s", des);
}
输出与我之前预期的不一样。例如:
来源:一个 来源:b des: aabb
你可能想要这个:
#include <stdio.h>
#include <stdlib.h>
void my_strcat(char des[], const char src[]) { // better use const her
int i = 0, j = 0;
while (des[i] != '[=10=]')
i += 1;
while (src[j] != '[=10=]') {
des[i + j] = src[j];
j += 1;
}
des[i + j] = '[=10=]';
// printf("%s", des); // dont print des here
}
int main() {
char des[1000];
char src[100];
des[0] = 0; // initialize des to a zero length string
for (int i = 0; i < 2; ++i) {
printf("src: ");
scanf("%s", src);
my_strcat(des, src);
}
printf("%s", des); // print the destination
}