c語(yǔ)言結(jié)構(gòu)體字符串賦值 結(jié)構(gòu)體中的成員如果是字符數(shù)組,有幾種賦值方式?
結(jié)構(gòu)體中的成員如果是字符數(shù)組,有幾種賦值方式?你好為何給結(jié)構(gòu)體中的string賦值時(shí)發(fā)生段錯(cuò)誤呢?對(duì)不起,放錯(cuò)位置了,應(yīng)該在這里:說(shuō)指針不正確,其實(shí)是因?yàn)槊總€(gè)成員變量中的字符串沒(méi)有初始化,比如記錄當(dāng)前
結(jié)構(gòu)體中的成員如果是字符數(shù)組,有幾種賦值方式?
你好
為何給結(jié)構(gòu)體中的string賦值時(shí)發(fā)生段錯(cuò)誤呢?
對(duì)不起,放錯(cuò)位置了,應(yīng)該在這里:說(shuō)指針不正確,其實(shí)是因?yàn)槊總€(gè)成員變量中的字符串沒(méi)有初始化,比如記錄當(dāng)前字符串長(zhǎng)度的變量,所以錯(cuò)誤int main(void){wordinfo*IFO=(wordinfo*)malloc(2*sizeof(wordinfo))memset(IFO,0,2*sizeof(wordinfo))//因?yàn)闆](méi)有IFO要初始化,所以錯(cuò)誤QQ(IFO)}
在C中優(yōu)先使用string是一個(gè)好習(xí)慣,除非C的diehard習(xí)慣了,否則應(yīng)該使用string而不是char。
Char用于處理任何8位數(shù)據(jù)類(lèi)型,如邏輯值、整數(shù)、字符ASCII碼等。要處理字符串,需要使用Char[]數(shù)組,這很麻煩,也很難控制。
String是一個(gè)模板類(lèi),專(zhuān)門(mén)用于處理字符串,并封裝了許多成員函數(shù)來(lái)處理字符串。它是C標(biāo)準(zhǔn)庫(kù)的一部分,所有C實(shí)現(xiàn)都支持它,并由C創(chuàng)始人推薦。
選擇使用哪一種并不困難。