一、字符
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’(即,空格)读取终止。
因此,用这种方法可以读取中间含空格的字符串。