程序功能解释:

  1. 声明了一个字符数组 p,长度为 20,并初始化为 {\'p\',\'p\',\'p\',\'p\'}
  2. 声明了两个字符数组 qr,分别初始化为 'qqqq' 和 'rrrrr'。
  3. 使用 strcat 函数将 r 的内容追加到 p 的末尾,此时 p 的内容变为 {\'p\',\'p\',\'p\',\'p\',\'r\',\'r\',\'r\',\'r\',\'r\',\'\0\'}
  4. 使用 strcpy 函数将 q 的内容复制到 p 的末尾,此时 p 的内容变为 {\'p\',\'p\',\'p\',\'p\',\'q\',\'q\',\'q\',\'q\',\'\0\',\'\0\'}
  5. 使用 strlen 函数计算 p 的长度(不包括最后的 \'\0\'),并通过 printf 函数输出结果。

执行每一步时字符串的字符个数和占用空间数:

  • 在声明字符数组 p 时,字符个数为 4,占用空间数为 20 个字节。
  • 在执行 strcat 函数时,字符串 p 的字符个数为 4,占用空间数为 20 个字节;字符串 r 的字符个数为 5,占用空间数为 6 个字节。
  • 在执行 strcpy 函数时,字符串 p 的字符个数为 8,占用空间数为 20 个字节;字符串 q 的字符个数为 4,占用空间数为 5 个字节。

使用 strlen 函数将字符串数组复制到字符数组时,不会复制最后的 \'\0\'

strcpy(p+strlen(q),q) 中的 p+strlen(q) 指针运算,将指针 p 后移 strlen(q) 个字节,即指向 p 的第 5 个元素。

在执行 char a[10]=\'abcdefg\';strcpy(p+1,\'xxxxxxxx\'); 后,字符串 a 的值为 \'axxxxxxxx\'

C语言字符串操作详解:strcat、strcpy 和 strlen 函数应用

原文地址: https://www.cveoy.top/t/topic/cNWL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录