慕婉清6462132
2021-04-06 16:07:17
定義 char t;char *P=strstrcat(t,p) 這個函數是不是把整個str內容都接到t 里面了? C語言里的指針好難理解啊。似乎模棱兩可,功能太多了么? 都有什么功能啊?是char *t; 問的是:這個函數是不是把p所指的整個str內容都接到t 里面了,但是p只是指著str的開始字符而已啊。
2 回答

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
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);//程序執行出錯

忽然笑
TA貢獻1806條經驗 獲得超5個贊
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!
添加回答
舉報
0/150
提交
取消