C语言学习笔记 |
您所在的位置:网站首页 › c语言strncat函数 › C语言学习笔记 |
「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战」。 strcat()函数strcat()函数主要用来拼接字符串,用于将一个字符串拼接到另一个字符串的后面。下面通过一个简单的例子来演示一下这个函数的使用方法。 int main() { char str1[10]="123"; char str2[4]="abc"; printf("str1:%s\r\n",str1); printf("str2:%s\r\n",str2); strcat(str1,str2); printf("str1:%s\r\n",str1); printf("str2:%s\r\n",str2); system("pause"); return 0; } 定义了两个字符串str1和str2,首先将两个字符串打印出来,接着使用strcat()函数将str2字符串拼接到字符串str1的后面,最后再将两个字符串打印一遍。输出结果如下:
为了解决正问题,系统又提供了一个新的字符串追加函数strncat()。这个函数相比strcat()函数多了一个参数,第三个参数用于设置追加内容的长度。这样在追加字符串的时候,就可以控制追加的字符长度,不会出现溢出的情况。 int main() { char str1[10]="123"; char str2[]="abcdefghjhijkl"; int cnt = 0,cnt1 = 0,cnt2 = 0; printf("str1:%s\r\n",str1); printf("str2:%s\r\n",str2); cnt = strlen(str1); cnt1 = sizeof(str1) / sizeof(str1[0]); cnt2 = cnt1 - cnt; printf("%d,%d,%d\r\n",cnt,cnt1,cnt2-1); strncat(str1,str2,cnt2); printf("str1:%s\r\n",str1); printf("str2:%s\r\n",str2); system("pause"); return 0; } 首先打印原始的字符串1和字符串2内容,接下来使用strlen()函数计算出字符串1实际占用的大小,使用sizeof()函数计算出字符串的总空间大小,然后计算这两个数据的差,就是字符串1中的剩余空间。当使用strncat()函数拼接字符串的时候,最后一个参数就是字符串1中的剩余空间大小。这样在拼接字符串的时候,就不会导致数据溢出了。
通过打印的结果可以看出,拼接后的字符串1,最后拼接的字符只是截取了字符串2的一部分,并没有将字符串2的内容全部拼接进去。拼接的字符串长度为6。计算出来字符串剩余长度为7,但是这里面也把字符串最后一位为空字符'\0',计算进去了。所以在使用strncat()函数时,最后一个参数的长度要减1,给字符串1留一个空白字符的位置。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |