1樓:網友
前面要磨漏亮引用搜敗。
#include
程式瞎寬改成。
str1=strcat(str2,str3);
2樓:匿名使用者
#incldue
char *str1;
str1=strcat(str2,str3);
str3字串將被連線到str2字串態攔的後面並儲存到str2中,並將str2的首位址返回給str1
必需確帆清胡保str2陣列的長度足夠容納連線後的字串。
另外 , 是按位與操作符,沒有連線字正絕符串的作用。
設有以下語句:char str1[]="string",str2[8],*str3,*str4="string";不能對庫函式strcpy的正確呼叫的是()
3樓:
(因為你問這個問題,所以肯定有些混亂,所以我們討論問題的中心,其他東西不多說,免得更混亂,以前我學這個的時候也是這樣)
c是錯誤的,strcpy(a,「hello!」)
這個函式是把hello!複製到a所知的儲存空間。注意,是儲存空間。
所以,c選項是錯誤的,為什麼c是錯誤的呢?讓你混亂的地方肯定是這裡:
c選項語法上是沒有錯誤的,但是邏輯上不對,你看題目,題目說的是正確呼叫,所以如果你糾結於語法問題肯定要被搞死的。
c選項str3是個指標變數,但是剛才特地說了「儲存空間」,你能告訴我這個str3指標變數所指的儲存空間是**嗎?不能,因為定義中沒有給他賦值。
a是正確的,是把hello!複製到str1所指向的位址,也就是str1陣列中。
b是正確的,是把hello!複製到str2[8]這個具有八個元素大小的陣列中。
d是正確的,str4所指向的儲存空間是"string"所在的地方,所以a,b,d的str都指向了乙個儲存空間,唯獨c沒有指向,所以c是不能用的。
絕對讓你滿意~
補充:樓上說str4指向了乙個字面字串,是不能更改的。這個在這道題目中是不需要考慮的,為什麼他說不能更改?
因為str4更改後,string這個字串所在的儲存空間因為沒有被其他變數所指向或被定義,所以string所在記憶體會被釋放,也就是消失,這個在程式設計中會造成資料丟失,應該避免,但是在這個題目中,是無妨的。
4樓:匿名使用者
c,d不能正確呼叫。
str3這個指標沒有指向某個具體的物件;
str4指向了乙個字面字串,是不能更改的。
c語言中字串連線怎麼解決,C語言中字串連線怎麼解決??
大野瘦子 include char a 10 123 char b 10 abc char c 20 strcpy c,a 把串a複製到有足夠空間的c中strcat c,b 把b連線到c的串尾需要注意的事項 c的長度一定要能夠容納要轉換的數字的長度,比如下面的例子,c的長度至少為8 1234567 ...
C語言程式題 請輸入兩個字串str1和str2求助各位大佬,感激不盡
include include int find char str1,char str2 char s new 64 int i 0,j 0,m 0,n 0 int len1 strlen str1 int len2 strlen str2 提取所有str1和str2的相同元素 for i 0 i ...
今天我編了小程式以完成C語言中的字串連線函式「strcat」的功能,於是想到了指標來實現。但最後程式
自己對照看一下。main b 15 p a,q b int i for i 0 i 15 i p i 6 q i printf s n s n a,p 首先你的printf s a 22 肯定報錯列印後面接陣列名,a 22 陣列訪問越界 應該printf s n a 還有你的 hoello 有7位,...