C 問題,strstring 不可行

時間 2022-06-30 06:20:04

1樓:匿名使用者

只能在初始化的時候用等號的方式賦值,比如下面兩種寫法都能被接受。

#include

char str1[10]="string"; // 初始化char str2="string";   // 初始化strcpy(str1, "string2");  // 賦值但宣告後就無法直接賦值了,因為沒有str這種語法,說白了str還是一個陣列罷了,其內用指標呼叫,str這種寫法即便有意義,無非型別是個char*或者char,逃不出二者之一,但無論哪種都無法直接用一個const char*(「string」本質是一個指向字串常量的指標)來實現字串複製的目的(指標賦值只會複製記憶體地址而非內容,這樣是沒意義的)。

所以想賦值只能通過指標方式寫入相應記憶體位置才行,這個就得利用到一個標準庫函式strcpy(str1, "string2")。這個函式的實現不復雜,網上有很多實現的**例子,可以自己找來看看到底如何做到的。其他字串操作也都是通過標準庫函式來實現了,這個隨便找本c++的書都會有一章專門介紹字串處理的問題。

這些問題都是由於c/c++本身沒有字串這種變數型別造成的,這也造成了其語言本身對字串處理能力有限,使用起來比較複雜的問題(必須通過函式實現字串處理)。所以在很多應用中都是使用類來實現字串,簡化了操作和增加了功能,比如標準庫中的string(要引用string標頭檔案才行),這種實現中就允許直接賦值了,也不用擔心地址越界之類的問題。

#include

string str3;

str3 = "string";

2樓:匿名使用者

char str="string"是對str初始化,str是個陣列,不能直接str="string"賦值。。賦值不是初始化哦

3樓:匿名使用者

char str[10];str="string";

老大語法問題啊中間的分號改成逗號,而且陣列名重名了,第二個換個名字。

4樓:暮影

char str[10];

str[10]="string";

//應該是上面那樣賦值的,你也可以在定義的時候賦值

5樓:遠古天空之城

親,你在第二次沒指定型別啊,,,被用「;」斷開了,再說了,陣列初始化也不是這樣的

要創業,怎麼判斷自己的專案可不可行

小吃這個 應該人多的地方就可以了。指的是像學校啊,人多逛的那些街。然後就看你的東西好不好吃能不能留住客人了。判斷的標準是做市場調查,怎麼判斷一個專案是不是創業機會?創業是一個永恆的話題,尤其對於年輕人,創業總是很有吸引力。現在有很多人在創業階段,也有的還在觀望。那麼,創業的一些機會怎麼去分辨它是否能...

刷ECU提升動力到底可不可行,刷ECU真能提升動力?到底會不會傷車

每天60秒,輕鬆懂汽車,關注 備胎說車 刷ecu真能提升動力?到底會不會傷車 每天60秒,輕鬆懂汽車,關注 備胎說車 你好 刷電腦提動力。就跟運動員一樣,存在一些隱患,透支發動機壽命。1 能提升多少動力跟車有關,原廠升級ecu動力的增長是按百分比提升的,自然吸氣發動機一般提升5 20 渦輪增壓發動機...

我想報名H5前端培訓不知道可不可行

四川原始碼時代科技 是可行的。首先,現在網際網路的發展速度迅猛,網頁由web1.0到web2.0,再到新生的html5 css3,到現在手機 4g網路等新科技的興起,網頁也由最原先的 為主,到現在各種各樣的基於前端技術實現的應用 互動和 的呈現,更多的資訊 更豐富的內容 更友好的體驗,已經成為 前端...