C语言字符串操作示例:strcat和strcpy的使用
这段代码演示了C语言中字符串操作函数strcat和strcpy的用法,以及字符数组长度和占用空间的计算。
程序功能:
- 将字符串'rrrrr'追加到字符串'pppp'的末尾
- 将字符串'qqqq'复制到字符串'pppp'的后半部分
- 输出字符串'pppp'的长度
代码逐行解释:
char p[20]={'p','p','p','p'};:声明并初始化一个字符数组p,长度为20,初始值为{'p','p','p','p'}。p中字符个数为4,占用空间数为20。char q[]="qqqq";:声明并初始化一个字符数组q,长度根据初始化的字符串确定为5。q中字符个数为4,占用空间数为5。char r[]="rrrrr";:声明并初始化一个字符数组r,长度根据初始化的字符串确定为6。r中字符个数为5,占用空间数为6。strcat(p,r);:将字符串r追加到字符串p的末尾。此时p为'pppprrrrr',字符个数为9,占用空间数为20。strcpy(p+strlen(q),q);:将字符串q复制到字符串p的后半部分。p的长度为9,q的长度为4,所以从p的第5个位置开始复制q,复制后的p为'pppprqqq',字符个数为9,占用空间数为20。printf("%d\n",strlen(p));:输出字符串p的长度,即9。
额外说明:
- 用strlen函数把字符串数组复制到字符数组会把最后的'\0'也复制过去吗? 不会,strlen函数只计算字符串的字符个数,不包括最后的'\0'。
strcpy(p+strlen(q),q);这一步的p+strlen(q)是什么意思?p+strlen(q)表示从p的第strlen(q)个位置开始的地址,即从p的第5个位置开始复制字符串q。
希望以上解释对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/cQ8t 著作权归作者所有。请勿转载和采集!