教你夺冠


私信TA

用户名:835685327

访问量:156789

签 名:

相互交流 相互学习

等  级
排  名 15
经  验 22543
参赛次数 0
文章发表 84
年  龄 0
在职情况 学生
学  校 辣鸡施工大学
专  业

  自我简介:

努力刷题 熟能生巧!

有点不明白为啥大家都不按题目要求来解题。。

为了刷题而刷题嘛哈哈哈哈!


下面是我的答案,仅供参考:

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

char *mystrcat(char *str1, char *str2)
{
    int len1 = strlen(str1);
    int len2 = strlen(str2);

    int len3 = len1 + len2 + 1;
    char *strsum = (char*)malloc(len3);

    strncpy(strsum, str1, len1);
    strncpy(strsum + len1, str2, len2);
    strsum[len3 - 1] = '\0'; //注意,strncpy的结果不会自动添加结束符'\0',需要手动添加到最后一位

    return strsum;
}

int main()
{
    char str1[100];
    char str2[100];

    scanf("%s", str1);
    scanf("%s", str2);

    char *strsum = NULL;
    //char strsum[100]; //当使用这个形式时不能用下面的表达式,因为此时strsum为一个字符数组名,
                        //而数组名为一个指针常量,不能进行修改
                        
    strsum = mystrcat(str1, str2);

    printf("%s\n", strsum);

    return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »