三默网为您带来有关“6-28 字符串的连接 (15分)”的文章内容,供您阅读参考。

6-28 字符串的连接 (15分)

2023-01-21 10:10:50

本题要求实现一个函数,将两个字符串连接起来。

函数接口定义:

char *str_cat( char *s, char *t );

函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址。

裁判测试程序样例:

#include <stdio.h>
#include <string.h>

#define MAXS 10

char *str_cat( char *s, char *t );

int main()
{
    char *p;
    char str1[MAXS+MAXS] = {'\0'}, str2[MAXS] = {'\0'};

    scanf("%s%s", str1, str2);
    p = str_cat(str1, str2);
    printf("%s\n%s\n", p, str1);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

abc
def

输出样例:

abcdef
abcdef

代码:

char *str_cat( char *s, char *t )
{
    int i;
    int len=strlen(s);
    for(i=0;*(t+i)!=0;i++)
    {
        *(s+i+len)=*(t+i);
    }
    return &s[0];
}

细节:一个字符串的首地址就是他的首项,占一个位置
字符串的长度(也就是用strlen()求的长度)不包括最后的’\0’,但这个空串也算是这个字符串的一部分