ACM-ICPC中常用的字符串读入
ACM-ICPC中常用的字符串输入,更新中, 返回值等等的遇到后补充……
scanf
读取字符串,到空格等结束
1 | scanf("%s", str); |
gets
读取一行
1 | gets(str); |
因为不安全,gets已经停用
fgets
从stdin(或文件)中读入一行不超过n-1的字符
1 |
|
输入
abcdefg
输出
abcd
空格也读入, 回车也读入
1 |
|
输入
a b c
输出
a b c
(换行)
未读完的会留在输入队列中,留着下一次读
1 |
|
输入
abcdefghijklmn
输出
abcd
efgh
cin
cin >>
读到空格结束
1 | cin >> str; |
cin.get
读取一个字符
读取一个字符,会读入空格回车
1 | int main() |
输入
a
b
输出
a
(空行)
读取一行
读取一行不超过n-1的字符
空格读入不截断
可选第三个参数
1 |
|
输入
ab cd ef
输出
ab c
读到第三个参数结束(不读入第三个参数,将其留在缓存区)
1 |
|
输入
abcde
输出
a
cin.getline
读取一行(包括空格,但不读取回车)不超过n-1个字符
可选第三个参数,读取到第三个参数结束(不读取此参数,并从缓存区丢弃这个值)
样例见cin.get
cin.get和cin.getline区别
1 |
|
输入
abcde
输出
a
bcde (保留b)
1 |
|
输入
abcde
输出
a
cde (丢弃b)
cin各种读入对比
delim指cin.get和cin.getline的第三个参数,即要跳过的字符
语句 | 是否会被空格截断 | 是否读入delim或者回车 | 读取范围 |
---|---|---|---|
cin >> | 是 | 否 | 读到空格 |
cin.get | 否 | 是 | 读到一行不超过n-1个字符或读到delim |
cin.getline | 否 | 否 | 读到一行不超过n-1个字符或读到delim |
后记
未完待续……
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 五味子!