首页 > 试题广场 >

假设字符串char a[] = "abc123",char

[单选题]

假设字符串char a[] = "abc123",char b[] = "xyz",那么使用字符串连接函数strcat(a, b)连接字符串a和b之后得到的结果是()


  • abc123xyz

  • abc123

  • xyz

  • 内存溢出

  1. 首先数组并没有明确指出大小   

    char a[] = "abc123",char b[] = "xyz"

  1. char a[默认大小是7]“abc123\0”
  2. 数组a[]没有空间增加xyz
  3. 所以溢出

发表于 2021-12-31 15:16:32 回复(0)
数组没指定大小,则用内容的长度来赋值。此时a长度为6+1(末尾有\0),b长度为3+1(末尾有\0)。strcat连接字符串时,a长度不够就会溢出。
发表于 2022-01-18 11:53:44 回复(0)
strcat():strcat(dest,src);        strcat把src所指向的字符添加到dest结尾处(覆盖原dest结尾处的'\0'),并添加新的'\0'。由于a[]没有指出大小,所以用内容的长度赋值,即初始化时,相当于 char  a[7]
发表于 2022-04-06 23:21:53 回复(0)
    char test_a3[7] = "abc123";
    char test_b3[] = "xyz";
    strcat(test_a3,test_b3);
    cout<<test_a3<<endl;//正确输出abcg123xyz
//那为什么实际中这个代码能正确运行

发表于 2023-11-06 10:23:22 回复(0)
strcat 连接函数 strcat(arrayname1,arrayname2)arrayname1要足够长,否则会溢出
发表于 2022-11-21 20:33:12 回复(0)
字符数组没有指定长度 则 默认字符数组大小是字符长度+1
发表于 2022-10-14 15:21:36 回复(0)