c语言之strcat()

来源:百度知道 编辑:UC知道 时间:2024/06/30 05:42:40
定义 char t;char *P=str

strcat(t,p) 这个函数是不是把整个str内容都接到t 里面了? C语言里的指针好难理解啊。似乎模棱两可,功能太多了么? 都有什么功能啊?
是char *t; 问的是:这个函数是不是把p所指的整个str内容都接到t 里面了,但是p只是指着str的开始字符而已啊。

1. strcat(t,p)基本功能将,字符串p拷贝到t字符串尾。最终的字符串地址是t。
2.限制条件1:指针t必须指向的内存剩余空间必须大于p字符串。例如,以下代码就不正确:
char *t;
char *p = "abcd";
strcat(t,p);//程序执行会出错

char t[5] = "abcd";
char *p = "abc";
strcat(t,p);//程序执行会出错

正确代码例子如下:
char[10] = "abcd";
char *p = "abc";
strcat(t,p);//程序执行正常

3.限制条件2:t指向的内存空间已初始化。
例如,以下代码执行会有异常:
char t[10];
char *p;
strcat(t,p);//程序执行出错

strcat(t,p)这样写是不对的,t是字符型变量,而strcat的参数要求是字符指针,可以像下面这样写
char *t = new char[100];
strcpy(t,"hello ");
char *p= "word!";
strcat(t,p);
printf("%s\n",t);
delete [] t;
输出hello Word!

strcat(t,p)时2个参数都必须是指针或者数组(char型)。
另外累死的函数还有strcmp。strcat等
另一种类型strncat(a,b,n)这种函数的前一个参数的空间要大于后一个
指针本来就不好学,如果开始老出错的话,可以考虑先用用数组,对指针有一定理解之后再用指针。
ps:其实数组也是一种指针,是名字不能改的指针,数组指向的是数组中下标为0的元素

你的问法叫人好无语啊,感觉你对指针还没真正理解,你试试cout&l