字符串处理函数strncat与strcat功能类似,对于两个参数字符数组a、b,将b中的字符串拼接到a中的字符串后。strncat还需要第三个参数n,指定取b中前n个字符拼接,若n大于b的长度则拼接所有字符。要求自定义函数join实现同样的功能,在主函数中进行调用,实现以下效果:
int main()
{
char a[66] = "i love";
char b[] = " study very much cai guai";
join(a, b, 6); // 执行后a中字符串为"i love study"
join(a, b, 666); // 执行后a中字符串为"i love study study very much cai guai"
}
#include "stdio.h"
char *join(char *a,const char *b,int n){
int i;
char *t;
if(a==NULL || b==NULL)
return NULL;
for(t=a;*t;t++);
for(i=0;i++<n && *b;*t++=*b++);
*t='\0';
return a;
}
int main(int argc,char *argv[]){
char a[66] = "i love";
char b[] = " study very much cai guai";
//join(a,b,6); // 执行后a中字符串为"i love study"
//join(a,b,666); // 执行后a中字符串为"i love study study very much cai guai"
printf("6:\t%s\n",join(a,b,6));
printf("666:\t%s\n",join(a,b,666));
return 0;
}
代码图片及运行样例: