C/C++带有空格的字符串输入
一、带有空格的字符串输入
(一)C++篇
1. 针对字符数组而言
- 方法一 getline()
读入整行数据,使用回车键输入换行符来确定输入结尾。
调用方法:
cin.getline(str,len)
第一个参数存储输入行的数组名称
第二个参数是要读取的字符数
举个栗子:
int main()
{
char str[100];
cin.getline(str,111);
cout<<str<<endl;
return 0;
}
- 方法2 cin.get(str,len)
举个栗子:
int main()
{
char str[100];
cin.get(str,111);
cout<<str<<endl;
return 0;
}
两者都是读取一行输入,直至换行符
但是,getline() 将换行符丢弃,而get()将换行符保留在输入序列中
2. 对于string类
- 方法1 getline(cin,str)
举个栗子:
int main()
{
string str;
getline(cin,str);
cout<<str<<endl;
return 0;
}
(二) C语言篇
c语言输入使用scanf函数,但scanf默认输入碰到回车和空格是输入不同组之间的间隔和结束符号,所以输入带有空格,tab或者回车的字符串是不可以的,解决方法如下。
1. 利用正则表达式
利用格式符“%[] ”它的作用扫描字符串集合。scanf("%[^c]",str);
其中”c” 是一个具体的字符常量(包括控制符)。
举个栗子:
int main()
{
char *msg=NULL;
msg=(char *)malloc(100*sizeof(char));
scanf("%[^\n]",msg);
printf("%s",msg);
return 0;
}
2. 使用gets()函数
gets()函数是以回车符作为结束符
本函数不建议使用,因为在codeblocks已经无法使用
二、先输入一个整数后,再输入一个带空格的字符串
int i=0;
string data;
cin>>i;
cin.get(); //这应该懂吧,读取换行符,因为换行符在你按回车时还在输入队列中
getline(cin,data); //正因为cin.get()将换行符读取了,这行代码可以读取一行,否则将直接读取换行符,这样子这一行的内容都存进data字符变量中
cout<<i<<endl<<data;
return 0;
C/C++带有空格的字符串输入的更多相关文章
- SQLServer中比较末尾带有空格的字符串遇到的坑
最近发现SQLServer中比较字符串的时候 如果字符串末尾是空格 那么SQLServer会无视那些空格直接进行比较 这和程序中平时的字符串判断逻辑不统一 );set @a=N'happycat198 ...
- SQL Server中比较末尾带有空格的字符串遇到的坑 (转载)
最近发现SQLServer中比较字符串的时候 如果字符串末尾是空格 那么SQLServer会无视那些空格直接进行比较 这和程序中平时的字符串判断逻辑不统一 );set @a=N'happycat198 ...
- 带有空格或tab的字符串的判断
class test { public static void main(String[] args) { String a = " "; //带有空格的字符串 if ( a.is ...
- C\C++对于字符串输入处理
1.scanf scanf以%s格式符读入字符串,会以空格为结束,也就是无法将空格读入.如果换成%c就可以读入,但是无法一次性读入一整行字符. 2.fgets 显然,fgets是一个读取带空格字符串的 ...
- C从控制台(stdin)输入带空格的字符串到字符数组中
用scanf("%s",array); 的话遇到空格就停止接收后面的字符了,那怎么才能接收带空格的字符串呢? 1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入 ...
- C语言输入带空格的字符串
参考:https://blog.csdn.net/vincemar/article/details/78750435 因为: scanf("%s",str); 遇到空格就停止接收后 ...
- C/C++ 中带空格字符串输入的一些小trick
今天在重温 C++ 的时候发现自己存在的一些问题,特此记录下来. 我们可以看一下下面这段代码: #include <iostream> #include <cstdio> #i ...
- cin 字符串输入
cin 字符串输入 在学习c的时候,关于字符串的输入,记得有 scanf("%s",s); gets(s); 还有...o.o 好想没了... scanf("%s&quo ...
- ACM字符串输入问题
坑死了..竟然被这个问题困扰了大半个学期,今天搜来翻去终于弄明白了一些,以后固定用这几种用法好了不然总出错QAQ实际测试例子就没放了,死记这里就够用了T-T 概念: gets()函数:用来从标准输入设 ...
随机推荐
- spring mvc 集成freemarker模板
主要使用到的jar 文件:spring mvc +freemarker.jar 第一步:spring mvc 集成 freemarker <!-- 定义跳转的文件的前后缀 ,视图模式配置--&g ...
- How To Configure a Redis Cluster on Ubuntu 14.04
原文:https://www.digitalocean.com/community/tutorials/how-to-configure-a-redis-cluster-on-ubuntu-14-04 ...
- Java 中 泛型的限定
泛型 一般 出如今集合中,迭代器中 也会出现! 泛型 是为了 提高代码的 安全性. 泛型 确保数据类型的唯一性. 在我们经常使用的容器中. 越是 单一 约优点理啊! ...
- SpringBoot项目报错Cannot determine embedded database driver class for database type NONE
原因: Cannot determine embedded database driver class for database type NONE 这是因为spring boot默认会加载org.s ...
- 4 Ionic导航和核心组件--旅游应用
简介:在本节课中,我们将会通过一个虚构的旅游景点来构建一款功能完善的应用.本应用的核心特性是管理用户的应用内导航.本节课的主要目的,是展现构建一个完整的应用的过程. 无论是什么移动应用,最重要的功能之 ...
- XML转换为HTML
from:http://www.w3school.com.cn/xml/xml_to_html.asp 在上一节中,我们讲解了如何通过 JavaScript 来解析 XML 并访问 DOM. 本例遍历 ...
- [他山之石]Google's Project Oxygen Pumps Fresh Air Into Management
The Project Oxygen team spent one year data-mining performance appraisals, employee surveys, nominat ...
- 什么是cookie?session和cookie的区别?
1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session ...
- POJO与javabean的区别
POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通 ...
- MVC框架显示层——Velocity技术
Velocity,名称字面翻译为:速度.速率.迅速,用在Web开发里,用过的人可能不多,大都基本知道和在使用Struts,到底Velocity和Struts(Taglib和Tiles)是如何联系?在技 ...