6-16 字符串的连接 (15 point(s))

By | 最新修改:2024-08-17

声明

这是 拼题A(PTA)《中M2019秋C入门和进阶练习集》的习题。原题在 https://pintia.cn/problem-sets/1163286449659043840/problems/1174288506294865935 (侵删)

本人的答案仅供交流学习,请勿用于当作答案来提交!

题目描述

6-16 字符串的连接 (15 point(s))

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

函数接口定义:

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

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

裁判测试程序样例:

#include 
#include 

#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

我的答案

/*================================================================
*   Copyright (C) 2019 程序知路. All rights reserved.
*   
*   Filename    :6-16-字符串的连接.c
*   Author      :程序知路
*   E-Mail      :admin@icxzl.com
*   Create Date :2019年10月10日
*   Description :
================================================================*/
#include 
#include 

#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;
}

// 以下是有效代码
char* str_cat( char *s, char *t ) {
    char* p = s;
    while (*s != '\0')
        ++ s;

    while (*t != '\0') {
        *s = *t;
        ++s, ++t;
    }

    s = p;
    return p;
}


程序知路

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。

本文章可以转载,但是需要说明来源出处!

本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com