一、字符
1、讀取單個字符:直接讀取
//輸入a
//讀取
char x;
scanf("%c",&x);
2、讀取帶空格的字符
h h h
按格式書寫格式化字符串即可
char a,b,c;
scanf("%c %c %c",&a,&b,&c);
3、 處理字符間的換行符
假設要讀取以下內容
a b c
d e f
第一種方式getchar();
char a,b,c,d,e,f;
scanf("%c %c %c",&a,&b,&c);
getchar();//讀取換行符
scanf("%c %c %c",&d,&e,&f);
第二種方式scanf自行處理
char a,b,c,d,e,f;
scanf("%c %c %c\n",&a,&b,&c);
scanf("%c %c %c\n",&d,&e,&f);
二、讀取字符串
1、利用字符數組(C語言方法)
char s[(對應字符數組長度)];
scanf("%s",? s);
特點:遇到 ‘\0’(即,空格)讀取終止。
因此,這種方法只適用于讀取中間不含空格的字符串。
注意:用scanf讀入字符串出現換行時,無需getchar();
具體解釋
// 題目數據
1 // 要求作為數字讀入
12345 //要求作為字符串讀入
int n;
char s[6];scanf("%d", &n);
scanf("%s", s);
// 題目數據
1 // 要求作為數字讀入
12345 //要求按單個字符讀入
int n;
char a, b, c, d, e;
scanf("%d", &n);
getchar();
scanf("%c%c%c%c%c", &a, &b, &c, &d, &e);
?常見用法
char s[10];
scanf("%s", s+1); // 若不加1,則字符數組的下標則從0開始。
for(int i = 1; i <= n; ++ i){s[i] ......
}
2、利用string(C++方法)
string s;
(1) cin >> s;
特點:遇到 ‘\0’(即,空格)讀取終止。
因此,這種方法只適用于讀取中間不含空格的字符串。
(2) getline(cin, s);
特點:遇到 ‘\n’(即,空格)讀取終止。
因此,用這種方法可以讀取中間含空格的字符串。