字元 字串的輸入 輸出

2022-06-07 05:06:08 字數 858 閱讀 8021

提前宣告:c字串為char或char *型別,#include

而c++字串為string型別。#include

定義c字串時,有如下問題

char str = "

hello world

";//

必須初始化

char str[3];//

想要不初始化,必須指定長度

char* str;//

沒有分配記憶體,且無法用字串常量初始化,否則報錯:

//"const char *" 型別的值不能用於初始化 "char *" 型別的實體

c++字串不存在這種問題。

對c字串來說,長度未知所以無法指定長度,需要使用者輸入因此也不可能初始化。

解決方法只有兩種:1.指定足夠大的長度;2.動態分配記憶體。

對c++字串來說,string型別本身就不需要指定長度,隨時可以賦值初始化,不存在這種問題。

c字串處理這種情況比較簡單,單個字元依次讀入,或者整個字串讀入均可。但是如果問題2,3同時出現就相當麻煩了。

單個字元依次讀入可參考getchar()和cin.get()。

整個字串讀入可參考gets_s()和cin.getline()以及scanf()利用正規表示式格式化讀入。//gets()已被新標準廢除。

引數必須是已分配記憶體的字元陣列。

c++字串讀入通常用cin,但是會遇到空白字元提前結束。

因此建議使用getline(cin,str,'\n') //第三個引數預設是『\n',可以不寫;第乙個引數也可以是檔案流

注意這裡的getline()和上面的cin.getline()引數是不同的,不要混淆。

暫時就想到這麼多。待續……

字元 字串的輸入輸出

字元與字串的輸入輸出 如果要使用現成的字串函式和方法,就一定要加上對應的標頭檔案,如果在c 當中呢,就是 include 如果是在c當中呢,就是 include 4.1字元,字串的輸入輸出 char c 字元的輸入輸出 scanf c c printf c c 接收單個字元 字串的輸入輸出 char...

字串的輸入輸出

1.字串陣列 初始化 char s1 array 字元陣列 char s2 6 array 陣列長度 字串長度 1,因為字串末尾會自動添 0 printf s,c n s1,s2 2 2.字串指標 初始化 char sp pointer 字元指標 printf s,c,c n sp,sp,sp 2 ...

c c 字元 字串輸入輸出

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 輸入字串長...