C++中带空格字符串的输入问题解决

时间:2021-11-06 04:37:21

前言

字符串一直是一个重点加难点,很多笔试面试都会涉及,带空格的字符串更是十分常见,现在对字符串的输入问题进行一下总结。

C++用cin输入的时候会忽略空格以后的字符,比如

?
1
2
3
char a[100];
 
cin>>a;

C++用cin输入的时候会忽略空格以后的字符,输入"hello world"输出的是"hello";

如果用循环输入

?
1
2
3
4
5
6
7
for(int i=0;i<100;i++)
 
{
 
cin>>a[i];
 
}

这样输入100个数吗?或者定义一个n,提前知道字符有多长,让i<n,都不是很好的方法。

这里可以用cin.getline(a,100);解决,这个函数是默认输入回车表示输入结束。

下面一道例题:输入hello world,输出dlrow olleh,参考答案

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
 
using namespace std;
 
int main()
 
{
 
 char a[20];
 
 for(int i=0;i<20;i++)
 
 { a[i]='\0';}
 
  cin.getline(a,20);
 
 // cin>>a;
 
 cout << a<<endl;
 
 for(i=sizeof(a)-1;i>=0;i--)
 
 {
 
  if(a[i]!='\0')
 
  cout<<a[i];
 
 }
 
 return 0;
 
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:http://www.cnblogs.com/librasun/p/5401067.html