C++ 笔记(36)— 接收输入字符串的几种方法
C++
中常见的几种输入字符串的方法如下:
std::cin
、std::cin.get()
、std::cin.getline()
、std::getline()
、std::gets()
、std::getchar()
1. std::cin
1.1 最常用、最基本的用法,输入一个数字
#include <iostream>int main()
{int a, b;std::cin >> a >> b;std::cout << a + b << std::endl;return 0;
}
输入输出结果:
wohu@ubuntu-dev:~/project/cpp$ ./main.out
2
3
5
wohu@ubuntu-dev:~/project/cpp$
1.2 接受一个字符串,遇“空格”、“Tab”、“回车”都结束
#include <iostream>int main()
{char a[10];std::cin >> a ;std::cout << a << std::endl;return 0;
}
输入输出结果:
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abdcef
abdcef
wohu@ubuntu-dev:~/project/cpp$ ./main.out
ab cdef # 遇空格结束,所以不能输入多个单词
ab
wohu@ubuntu-dev:~/project/cpp$
2. std::cin.get()
2.1 std::cin.get() 用来接收单个字符
#include <iostream>int main()
{char ch;ch = std::cin.get();std::cout << ch << std::endl;return 0;
}
输入输出结果:只能用于输入一个字符。
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abcdef
a
wohu@ubuntu-dev:~/project/cpp$
2.2 std::cin.get(字符数组名,接收字符数)
#include <iostream>int main()
{char ch[10];std::cin.get(ch, 10);std::cout << ch << std::endl;return 0;
}
输入输出结果:
- 可以接收空格
- 输入超 10 个字符时,接收 9个字符+1个
\0
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abcdefghijkl
abcdefghi
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abcd efgh
abcd efgh
wohu@ubuntu-dev:~/project/cpp$
2.3 cin.get(无参数)主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足
#include <iostream>int main()
{char ch[10];std::cin.get(ch, 10);std::cin.get(); //用于吃掉回车,相当于getchar();std::cout << ch << std::endl;std::cin.get(ch, 5);std::cout << ch << std::endl;return 0;
}
输入输出:
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abdedds
abdedds
adbcd
adbc
wohu@ubuntu-dev:~/project/cpp$
注释掉 std::cin.get()
之后
#include <iostream>int main()
{char ch[10];std::cin.get(ch, 10);// std::cin.get();std::cout << ch << std::endl;std::cin.get(ch, 5);std::cout << ch << std::endl;return 0;
}
输入输出结果:
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abdecdf
abdecdfwohu@ubuntu-dev:~/project/cpp$
3. std::cin.getline()
3.1 接受一个字符串,可以接收空格并输出
#include <iostream>int main()
{char ch[20];std::cin.getline(ch, 5);std::cout << ch << std::endl;return 0;
}
输入输出:
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abcdef
abcd
wohu@ubuntu-dev:~/project/cpp$
接受 5 个字符到 ch
中,其中最后一个为 \0
,所以只看到 4 个字符输出。
把 5 改成 20 后运行:
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abc def ghi
abc def ghi
wohu@ubuntu-dev:~/project/cpp$
3.2 扩展
std::cin.getline()
实际上有三个参数,cin.getline(接受字符串到m,接受个数5,结束字符)
,当第三个参数省略时,系统默认为 \0
是 /n
吧。
如果将例子中 std::cin.getline()
改为 std::cin.getline(m,5,'a')
;
- 当输入
jlkjkljkl
时输出jklj
; - 输入
jkaljkljkl
时,输出jk
;
4. getline()
接受一个字符串,可以接收空格并输出,需包含 #include<string>
。
#include <iostream>
#include <string>int main()
{std::string str = "";getline(std::cin, str);std::cout << str << std::endl;return 0;
}
输出结果:
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abc def gh
abc def gh
wohu@ubuntu-dev:~/project/cpp$
和 cin.getline()
类似,但是 cin.getline()
属于 iostream
流,而 getline()
属于 string
流,是不一样的两个函数。
5. getchar
接受一个字符,需包含 #include<string>
#include <iostream>
#include <string>int main()
{char ch;ch = getchar(); //不能写成 getchar(ch);std::cout << ch << std::endl;return 0;
}
输入输出结果:
wohu@ubuntu-dev:~/project/cpp$ ./main.out
abd
a
wohu@ubuntu-dev:~/project/cpp$
getchar()
是 C
语言的函数,C++
也可以兼容,但是尽量不用或少用;
6. gets()
warning: ‘char* gets(char*)’ is deprecated
该函数已被弃用,尽量少用。
原文地址:https://blog.csdn.net/u011486738/article/details/82082405
描述
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写,字符串长度小于500。
输入描述:
第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字母。
输出描述:
输出输入字符串中含有该字符的个数。
示例1
输入:
ABCabc
A
输出:
2
#include <iostream>
#include <string>using namespace std;int main(){string s;int res = 0;while(getline(cin,s)){char a;cin>>a;cin.ignore(); //此处ignore()不加也可以a = tolower(a);for(int i = 0 ; i < s.size(); i++){if(s[i]==a||s[i]== a-32){res++;}}}cout<<res<<endl;
}
本题要点:
1.注意cin 与 getline的使用 如果是先cin输入一定要加cin.ignore() 原因:cin输入如果用回车结尾,那么getline获得的第一个字符就是‘\n’,输入的时候按个enter啥效果就不用我给大家介绍了吧。
2.大小写的判断注意toupper和tolower的灵活使用
C++ 笔记(36)— 接收输入字符串的几种方法相关推荐
- C++中输入字符串的几种方法
C++中输入字符串的几种方法 C++的字符串输入方式有 1.cin>> 2.cin.get() 3.cin.getline() 4.getline() 5.gets() cin 第一种用法 ...
- C++输入输入字符串的几种方法
常见的几种输入方法 cin,getchar(),cin.getline(有参数),getline(cin.s),cin.get(有参数),cin.get(无参数):gets();getchar(); ...
- java 接收json 字符串_spring接收json字符串的两种方式
一.前言 前几天遇到一个问题,前端H5调用我的springboot一个接口(post方式,@RequestParameter接收参数),传入的参数接收不到.自己测试接口时使用postman的form- ...
- .NET深入学习笔记(2):C#中判断空字符串的4种方法性能比较与分析
偶然看到<C#中判断空字符串的3种方法性能分析 >作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.28 写的一 ...
- php 获取一串随机字符串,php获取随机字符串的几种方法
方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍) /** * 获得随机字符串 * @param $len 需要的长度 * @param $special ...
- C语言清空输入缓冲区的N种方法对比
C语言中有几个基本输入函数: //获取字符系列 int fgetc(FILE *stream); int getc(FILE *stream); int getchar(void); //获取行系列 ...
- Java中String字符串截取几种方法(substring,split)
Java中String字符串截取几种方法 substring,split 这是一个Java中的String的基础用法的演示. 下面通过代码对大家进行讲解 substring 这里用来ndexOf,la ...
- Java判断回文字符串的几种方法
文章目录 Java判断回文字符串的几种方法 1. 将字符串倒置后逐一比较,示例代码如下: 2. 将字符串倒置后创建新字符串直接比较,示例代码如下: 3. 使用截取字符串的方式比较,示例代码如下: 4. ...
- php 带建数组转字符串,php数组转换为字符串的两种方法详解【附视频】
本篇文章主要给大家介绍PHP数组转换为字符串的两种方法.(文章末尾附有对应的视频教程) 第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串. 第二种方法:使用循环遍历数组元素拼接成 ...
最新文章
- 隔年的衣服发黄处理方法
- 万万没想到,“红孩儿”竟然做了程序员,还是 CTO!
- 简单的MapReduce项目,计算文件中单词出现的次数
- linux ce mysql安装_Linux 安装 MySQL 8.0
- 《剑指offer》删除链表中重复的节点
- deepin下载python_深度操作系统中怎样下载python?
- 信息学奥赛C++语言:打印字母表
- 构建之法第三章学习小记
- 谈谈有什么方法可以快捷实现多场景下的线程安全
- url参数拼接 php,PHP解析url并得到url参数方法总结
- L1-001. Hello World-PAT团体程序设计天梯赛GPLT
- 《JavaScript高级程序设计2》学习笔记——Ajax与JSON
- Visual Studio + VAssistX常用快捷键收藏
- ISO14000标准与ISO9000标准异同(转载)
- Microsoft Word 2010 - 清除格式
- Python常用模块大全
- 笔记本安装双系统教程
- 【Elasticsearch教程13】Mapping字段类型之nested
- Centos 在 Selenium 使用中的异常:chrome not reachable
- 超简单集成华为HMS Core MLKit通用卡证识别SDK,一键实现各种卡绑定