繁体   English   中英

在 C 中执行 strcat() function

[英]implement strcat() function in C

我正在尝试在 C 中实现 strcat() 但坚持认为 output 结果是重复的 src。

这是我的代码。


void my_strcat(char des[], char src[]) {
    int i = 0, j = 0;
    while (des[i] != '\0')
        i += 1;
    while (src[j] != '\0') {
        des[i + j] = src[j];
        j += 1;
    }
    des[i + j] = '\0';

    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);

}

output 与我之前的预期不同。 例如:

src: a src: 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] != '\0')
    i += 1;
  while (src[j] != '\0') {
    des[i + j] = src[j];
    j += 1;
  }
  des[i + j] = '\0';

  // 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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM