凌域 2023-03-08 10:35 采纳率: 70%
浏览 39
已结题

C语言 strcpy函数复制规则

#询问下复制结束后的s2字符串中的内容是什么?
是否为A与B与C与'\0'与空格与'\0这六个字符?因此会输出这个结果。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{

    char s1[] = "abc";
    char s2[] = "abc  ";
    char s3[] = "Abc";
    strcpy(s2, s3);
    for (int i = 0; i < 3; i++)
    {
        printf("%c#", s2[i]);
        
    }
    printf("\n");
    printf("sizeof(s2)=%d", sizeof(s2));






}

输出结果如下

img

  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2023-03-08 10:39
    关注

    strcpy(s2, s3); 之后,s2字符串和s3字符串一样,也就是前四个字符是Abc及'\0',然后s2中后面保留了空格和'\0'。所以输出是A#b#c#
    sizeof(s2)的大小,由s2数组长度决定,s2初始化的字符串包括abc三个字符,以及两个空格,还有字符串结束符,所以s2实际长度为6

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 创建了问题 3月8日