1樓:高金山
雖然我沒看見你的bai
程式,du我覺得問題出在:你的zhi指標變數(*p)指dao向的空間是否足
內夠大?
請看我下面的容程式:
#include
int main()
return 0;
} 只要你輸入的不超過50個漢字(每個漢字佔2個位元組),都能完好輸出的
注意:輸入0結束
補充回答:
你的錯誤就在gets和puts的語句啊,應該這樣修改:
gets(&(p+i)->name); //////////////去掉後面的[21]
puts(&(p+i)->name); //////////////去掉後面的[21]
你不清楚它們之間的區別嗎?把檔案簡化一下:
char name[21];
gets(name);/////////不能用gets(name[21])
puts(name);/////////不能用puts(name[21])
name表示字元陣列的首地址,也可以看成字串
而name[21]什麼都不是,是一種完全錯誤的寫法
2樓:星月小木木
c語言中,漢字是用字串來儲存的,因為,漢字是多位元組組成(gbk字符集專一個漢字佔兩個屬位元組,utf8字符集,一個漢字佔三個位元組),所以,標準c中,只能用字串來儲存漢字資料。
可以採用字串輸入函式來輸入中文。
判斷中文是不是指定資料,可以用strcmp()函式來進行比較中文輸出,可用printf("%s")來輸出相應的資料。
參考**:
#include
#include
void main()
else
}執行結果:
請輸入中文: 你好
我很好請輸入中文: 中國
你輸入的是:中國
3樓:匿名使用者
c語言中的字串有個很重要的標記就是結束標記 '\0'
在你輸入結束之後應該用過程式把字串最後加上 \0, 這樣才不會多輸出其他的字元
如果你用scanf("%s",p); 這樣得到的字串應該沒有問題
4樓:匿名使用者
最簡單的:
#include
void main()
怎麼會不行呢?是不是語法錯誤?通過編譯了嗎?
5樓:匿名使用者
你用的是什麼版本?
要用高一些的版本才行!
6樓:褲內雙核
可能和編譯器的版本有關啊,我的vc6++就行,還可以儲存中文名字的c檔案。用支援漢字的編譯器試試
7樓:匿名使用者
其實很簡單,你是用win-tc就可以了,在裡面加一句**:
system("graftabl 936");
記住要緊隨定義變數之後,不信試試
怎樣才能學好C語言
其實c語言很簡單,它只是一種交流的規則,一種表達的工具,一種承載思想的容器而已,之所以感覺難,我覺得是還不習慣使用計算機特點來考慮問題。這就好比中國人從到英國定居一樣,雖然你學過英語,但是那只是想象中的英國,和現實的英國的情況還相差很遠,所以要有一個適應的過程,也就是常說的過渡期或磨合期。想盡快上手...
怎樣才能學好C語言,如何學習C語言
c語言就我個人來說,我感覺入門不是很難。但是它是一門低階語言,所以從某種程度上來說它與硬體有一定的聯絡,那麼想學好c語言就必須從最基礎的層次上考慮問題。首先就要克服變數先定以後使用的規定。其實,從硬體上理解很能說過去,我們先定義了變數型別,計算機才能根據我們的定義分配記憶體大小,這樣就好理解了。而其...
怎樣才能看見最真實的自己,怎樣才能找到最真實的自己
每一個人的人生都有著或多或少的相同與不相同。而我們的人生是在展示自己,還是在演繹一場可執行的人生呢?是人生如戲還是人生就是一場歲月如歌的演繹呢?我們是在真實的實現中,還是在天天沉睡在夢 呢?內心 因為內心是最真實的自己,在尋找答案的時候,不防問問自己的內心的所思所想,你就明白其實迷茫是一件很糊塗的時...