關於C語言中有string型別嗎?

2022-05-24 21:57:07 字數 777 閱讀 5978

一、問題**

今天在vs2010平台上,嘗試採用scanf()

string word;

scanf("%s",&word);

然後發現錯誤,輸出採用

printf("%s\t",word);

發現也不行,然後轉換成cin和cout就ok,於是懷疑是不是%s出了問題,果然是這樣。

因為在c中的字串是儲存在char陣列中,是乙個基本型別的組合,但是string則是c++中的封裝好的類。

所以輸出可以採用

printf("%s\t",word.c_str());

但是感覺輸入是沒得救啊!

一直以來對這個問題都不是很清楚:只是知道c語言裡有型別,可以通過下面這種形式來宣告string的變數 string astring;

後來程式設計時發現通不過編譯,又查資料才知道原來c語言裡壓根就沒有string這個型別,所以字串都是通過char陣列來儲存的,

而不是型別)。這是網上我找到的比較滿意的答覆:

" c語言中有string型別變數嗎"

這裡的 string 有 二 義性。

(1) 如果 string 是普通詞彙,「c語言中有字元型別變數嗎」, 答,有。 字元型別 用 char 宣告。

char str="this is a string";

(2) 如果 string 是專用詞彙,「c語言中有string型別變數嗎」,答,沒有。string 是 類,是 class, 不是型別,不是 type.

C語言中有bool型別嗎?

之前一直都沒有注意到,最近在用c語言寫dsp演算法時,偶然間發現我函式中定義的bool型別的變數在vc6.0 我主要用它來檢查一下語法錯誤 中編譯居然報錯了,說是bool型別沒有定義。用了這麼久的c和c 了,一直覺得bool這種基本型別,應該是c語言內建的型別,怎麼會沒有定義呢?事實證明,我的想法完...

C語言中有bool型別嗎?

之前一直都沒有注意到,最近在用c語言寫dsp演算法時,偶然間發現我函式中定義的bool型別的變數在vc6.0 我主要用它來檢查一下語法錯誤 中編譯居然報錯了,說是bool型別沒有定義。用了這麼久的c和c 了,一直覺得bool這種基本型別,應該是c語言內建的型別,怎麼會沒有定義呢?事實證明,我的想法完...

c語言中有自己的bool型別

有人說c語言中沒有bool型別,只有c 中有,果真如此?先看沒有bool型別時,c中表示bool型別的方法 1 typedef int bool define false 0 define true 12 typedef int bool enum 3 typedef enum bool 簡單例項如...