C语言字符串操作详解:strcat、strcpy 和 strlen 函数应用
程序功能解释:
- 声明了一个字符数组
p,长度为 20,并初始化为{\'p\',\'p\',\'p\',\'p\'}。 - 声明了两个字符数组
q和r,分别初始化为 'qqqq' 和 'rrrrr'。 - 使用
strcat函数将r的内容追加到p的末尾,此时p的内容变为{\'p\',\'p\',\'p\',\'p\',\'r\',\'r\',\'r\',\'r\',\'r\',\'\0\'}。 - 使用
strcpy函数将q的内容复制到p的末尾,此时p的内容变为{\'p\',\'p\',\'p\',\'p\',\'q\',\'q\',\'q\',\'q\',\'\0\',\'\0\'}。 - 使用
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\'。
原文地址: https://www.cveoy.top/t/topic/cNWL 著作权归作者所有。请勿转载和采集!