char 和string的輸入

2022-07-08 10:42:15 字數 1718 閱讀 6847

1. scanf

1.1 輸入字元

char ch;

scanf("%c",&ch);

注意字元前面的取位址符

1.2 輸入字串

char str[15];

scanf("%s",str);

char *pstr;

scanf("%s",pstr);

(1)scanf在輸入字串時,不讀入空格和回車,在讀入空格或回車時,輸入結束

(2)輸入字串長度超過字元陣列元素個數不報錯,但執行時會提示「run-time check failure #2 - stack around the variable 'str' was corrupted.」

(3)當為str為陣列元素位址時,從此元素位址開始存放

(4)當輸入項為字元指標時,指標必須已指向確定的有足夠空間的連續儲存單元,不然會提示指標未初始化

2.getchar

輸入乙個字元

char ch;

ch = getchar();

3.gets

輸入乙個字串,包括空格,遇到回車結束輸入

char str[15];

gets(str);

4.cin

輸入數字:以空格或回車結束

輸入字元或字串:以空格、tab、回車結束!

5.cin.get

cin.get(字元變數名):用來接收字元

cin.get(字元陣列名,接受字元數目),用來接收乙個字串,可以接受空格的

cin.get(無引數):沒有引數主要是用於捨棄輸入流中的不需要的字元或者捨棄回車彌補cin.get(字元陣列名,接受字元數目),的空格的不足

getline將丟棄換行符,而get()將換行符保留在輸入序列裡,但是字串中並沒有換行符。使用cin.get()輸入多行資料時,中間可以使用get()消除換行符。

int main()

char str1[30], str2[30];

cin.get(str1, 30);

cin.get();

cin.get(str2, 30);

cout << "str1: " << str1 << endl;

cout << "str2: " << str2 << endl;

return 0;

6.cin.getline

cin.getline(字元陣列名,接受字元數目):接受乙個字串

cin.getlne():其實可以有三個引數,最後乙個引數是字串的結束標誌,當最後的引數省略時,預設是'\0'

char str[15];

int len = 5;

cin.getline(str,len,'*');

7.printf

printf("%s",位址值)

輸出時遇到第乙個'\0'為止

8.puts

puts遇到第乙個『\0』結束,自動加入換行符

char str[15];

gets(str);

puts(str);

string和char 的轉化

問題 上次的問題還遇到了string型別和char 的轉化的問題 回答 因為string型別的變數 有乙個方法c str 可以直接的到const char 所以如果想得到const char 就可以直接用這個方法了,舉例如 string str1 eh1.txt const char temp st...

char和string之間的關係

char和string 兩者關係很微妙,因為都是字元,但是他們直接的聯絡卻不是很多,這裡我和大家聊聊字元的兩大勢力的相愛相殺。char也就是字元型資料定義,string也就是字串型別資料定義,乍一看他們很想,乙個是字元乙個是字串,字串不就是字串起來得到的嗎?但是事實上,字串即是 字元 串起來也不是 ...

string和char型陣列的區別

char ch1 give me char ch2 a cup strcpy ch1,ch2 cout ch1 輸出結果 ch1 a cup string str1 give me string str2 a cup str1 str2 cout str1 0,5 引數2為起始位置,引數3為字元數 ...