C语言问题 求解

2025-06-22 15:27:21
推荐回答(1个)
回答1:

题目的意思是说s2比s1短,或长度相等,就把整个s2接到s1后面吗?

#include

#include


int main(void) {

  char s1[27], s2[27];

  char *p, *t, s[53];

  

  fgets(s1, 27, stdin);

  fgets(s2, 27, stdin);

  t = strchr(s1, '\n');

  if (t)   *t = '\0';

  t = strchr(s2, '\n');

  if (t)   *t = '\0';

  

  int l1 = strlen(s1);

  int l2 = strlen(s2);

  if (l1 < l2) {

    p = s1;

    t = s;

    while (*p) *t++ = *p++;

    p = s2 + (p - s1);

    while (*p) *t++ = *p++;

  }

  else {

    p = s1;

    t = s;

    while (*p) *t++ = *p++;

    p = s2;

    while (*p)   *t++ = *p++;

  }

  puts(s);

  return 0;

}