6-37 mystrcat (20 分)

编写一个函数

char* mystrcat(char *s1, const char *s2)
函数功能是把字符串s2的所有元素连接到字符串s1之后。

函数接口定义:

函数接口:

char* mystrcat(char *s1, const char *s2);

把字符串s2的所有元素连接到字符串s1之后。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:

#include <stdio.h>

char *mystrcat(char *s1, const char *s2);

int main()
{
    char a[100] = "abcd", b[60], c[30];
    scanf("%s", b);
    scanf("%s", c);
    mystrcat(a, mystrcat(b, c));
    puts(a);
    return 0;
}

/* 请在这里填写答案 */

输入样例:

fgh
ijk

输出样例:

abcdfghijk

答案

法1 非纯指针方法

char* mystrcat(char *s1, const char *s2){
    int i,j;
    for(i = 0;s1[i] != '\0';i++);
    for(j = 0;s2[j] != '\0';j++, i++)
        s1[i] = s2[j];

    s1[i] = '\0';
    return s1;
}

法2

char* mystrcat(char *s1, const char *s2){
    char *p = s1;
    while(*p)p++;
    while(*p++ = *s2++);
    *p = '\0';
    return s1;
}
上一篇:剑指 Offer 37. 序列化二叉树


下一篇:37. Django 2.1.7 中间件