赞
踩
结构:char * strcat ( char * destination, const char * source );
将源字符串的副本追加到目标字符串。目标中的终止空字符被源的第一个字符覆盖,并且在目标中由两者串联形成的新字符串的末尾包含一个空字符。
目的地和来源不得重叠。
参数:destionation:指向目标数组的指针,该数组应包含 C 字符串,并且足够大以包含串联的结果字符串。
source:字符串来源,不应与目的地重叠
eg:
- int main()
- {
- char str[80];
- strcpy_s(str, "The ");//注意source字符串后面一定要有空格
- strcat_s(str, "future ");
- strcat_s(str, "is ");
- strcat_s(str, "promising ");
- printf("%s\n", str);
- }
经过调试,发现:以上所有字符全部被填入str数组中,并且每个字符串之间也有空格被填入;并且经过调试发现,最后一个被填入的字符是'\0'; 所以为了把所有元素填入字符串中,我们就要找到'\0'的位置
strcat函数的功能就是把两个字符串进行连接,于是我们给出以下代码:
- #include<stdio.h>
- #include<string.h>
- #include<assert.h>
- char* my_strcat(char* dest, const char* src)
- {
- assert(dest!=NULL);//分别对dest和src进行断言防止其为空指针
- assert(src!=NULL);
- char* ret = dest;
- while (*dest)//找到'\0'的位置
- {
- dest++;
- }
- while (*dest++ = *src++)//因为以上对于dest进行了++,所以此时dest的位于hello后面的'\0'的位置,就变成了arr1中hello后面的位置填入arr2
- {
- ;
- }
- return ret;//返回数组名即首元素的地址
- }
-
- int main()
- {
- char arr1[20] = "hello ";
- char arr2[] = "world";
- printf("%s", my_strcat(arr1, arr2));
-
- }
根据以上调试分析,我们可知,strcat函数的本质即为将source所在的字符串填入destination所在字符串数组之后;那么我们首先找到'\0'所在位置,即可填入;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。