先演示一下,strncat函数的效果,程序代码如下:
#include <string.h>
#include <stdio.h>
void main(void)
{
char string[80] = "This is the initial string!";
char suffix[] = " extra text to add to the string...";
/* Combine strings with no more than 19 characters of suffix: */
printf("Before: %s\n", string);
strncat(string, suffix, 19);
printf("After: %s\n", string);
system("pause");
return 0;
}
运行结果如下:
函数参数有原字符串,目标字符串,操作字符数,函数运行后会将一定数目的目标字符串内容加到原字符串的后面,下面给出程序代码:
#include <stdio.h>
#include <Windows.h>
#include <assert.h>
#include <string.h>
char *mystrncat(char *strDest, const char *strSource, size_t count)
{
assert(strDest);
assert(strSource);
int len = strlen(strDest);
char *rat = strDest; //记下string的开始地址
char *ret = strDest + len; //从要加的字符串最后一个字符后开始
while (count-- > 1) //strncat要求添加的字符数是不大于count的,所以这里的限制条件是count,只要(count-- > 1)是大于0的,就可以执行循环体
{
*ret++ = *strSource++;
}
return rat; //返回到原字符串开始位置
}
int main()
{
char string[80] = "This is the initial string!";
char suffix[] = " extra text to add to the string...";
printf("Before: %s\n", string);
/* Combine strings with no more than 19 characters of suffix: */
mystrncat(string, suffix, 19);
printf("After: %s\n", string);
system("pause");
return 0;
}
程序运行结果如下: