问答详情
源自:6-8 字符串函数

关于字符串函数


#include <stdio.h>

#include <string.h>

int main()

{

    char s1[100]="";

    char s2[]="我爱,";

    char s3[]="慕课网";

    /*在以下补全代码*/

    strcat(s2,s3);

    strcpy(s1,s2);

    

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

    return 0;    

}

这是我的代码  我的输出结果没问题  但这样对吗 那个拼接的可以这么写吗 他说s2要有足够的内存 这样会不会不够

提问者:废寝忘食陈同学 2019-08-02 22:21

个回答

  • 小小疾飞
    2019-08-02 22:37:40
    已采纳

    strcpy(s1,s2);

        strcat(s1,s3);


  • weixin_精慕门9421830
    2019-08-28 08:46:54

    不可以的 你的strcat(S2,S3);实际就是不能完成的 因为S2的内存空间已定短于S3 理论上是放不下S2+S3的   而输出正确的原因是你恰好把 S2+S3又STRCPY了S1(去掉这一步会出错)  S1有足够的空间  至于CAT那一步为什么还是把数据存下来了  我认为和内存的分配有关

  • UnforgetMemory
    2019-08-02 22:28:26

    可以的,不写长度好像是无限(应该有限2333)