[原创]C++带空格字符串的输入问题

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

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

char a[100];
cin>>a;

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

如果用循环输入

for(int i=0;i<100;i++)
{
cin>>a[i];
}

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

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

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

#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;
}
时间: 2024-08-01 15:04:59

[原创]C++带空格字符串的输入问题的相关文章

C/C++ 中带空格字符串输入的一些小trick

今天在重温 C++ 的时候发现自己存在的一些问题,特此记录下来. 我们可以看一下下面这段代码: #include <iostream> #include <cstdio> #include <string> #include <cctype> using namespace std; int main(int argc, char const *argv[]) { string s; cin >> s; int cnt[26]={0};//字母统

c语言中读入带空格的字符串

http://blog.csdn.net/pipisorry/article/details/37073023 问题: scanf("%s", a); 运行输入hello world 回车 则输入到a的只是空格之前的部分,怎样把空格之后的部分也输出? 1. scanf( "%[^\n]", str ); #include <stdio.h> int main(){ char str[50]; scanf( "%[^\n]", str

如何在VC6.0里存储带空格的字符串

char str[20]; cin.getline(str,20) 或 string str; getline(cin,str); 据说都可以存储含空格字符串,但我用VC6.0时都出错 以下为粘贴 关于在C++中输入带空格的字符串的方法 yibcs 2012-08-10 20:44:17 此人文章 #include <iostream> #include <stdio.h>#include <string> using namespace std; void main(

【C】字符串的输入,求输入字符串中最长的单词

首先,基本目标很简单,就是利用C语言:编写一个函数,输入一行字符,将此行字符中的最长的单词输出. 代码如下: #include<stdio.h> void input(char s[]){ int i=0; for(int c;(c=getchar())!='\n';i++){ s[i]=c; } s[i]='\0';//读取完成,记得对这个字符数组封口 } char* findmax(char s[]){ int max=0,word_length=0,p=0,i=0;//这个p是用来记录最

字符串的输入问题 C++

C++中,初学时最常用的输入字符的方式为cin,但是,cin是如何确定已经完成了字符串的输入了呢?由于不能通过键盘输入空字符("\0"),因此cin需要用别的方法来确定字符串的结尾位置.cin使用空白(空格,制表符和换行符)来确定字符串结束的位置,这意味着cin在取字符数组输入时只能读取一个单词.读取该单词后,cin将该字符串放到数组中,并自动在结尾添加空字符.如下的程序所示: #include<iostream> using namespace std; int main

字符串的输入问题

字符串的输入问题: 1.    格式化输入函数:scanf("格式字符串", 地址);.将用户输入的数据与格式化字符串进行匹配, 将匹配到的数据赋值给地址所在的内存,使用 %s 作为字符串的格式,需要注意的是,当输入的字符超过数组长度时就会覆盖掉与该数组所占内存相邻的内存中的其他数据.而且有时系统不会报错.假如定义一个长度为5的char 型字符串数组,当输入12345abc时如下图模拟内存空间: 2.    其他输入字符串函数介绍: (1).    gets(数组名或者&变量名

git bash中带空格的文件夹以及文件的处理

空格用'\ '表示,输入的时候,是不需要单引号的 total 338drwxr-xr-x 9 Administ Administ 4096 Aug 24 23:53 HDTHelperdrwxr-xr-x 1 Administ Administ 4096 Oct 25 03:15 HDTTestsdrwxr-xr-x 11 Administ Administ 4096 Sep 15 00:14 HDTUninstallerdrwxr-xr-x 1 Administ Administ 4096 M

输入带空格字符串的两种方法

这是我们平常用的: char s[100]; scanf("%s",s);//cin>>s; 输入字符串时,当遇到空格就自动停止输入,导致空格后门的字符没有按我们设想的输入. 现在有两种方法可以输入带空格的字符串: 第一,用get()函数: char str[100]; get(str); 注:get()函数在linux使用会有这条错误.在linux(fedora10)下的话建议使用第二种方法. test.o: In function `main': test.c:(.te

VBS中解决路径带空格的三种方法

vbs中,如果需要运行的程序中带有空格,按照通常的方式往往会提示错误,其实有两种形式不同的解决方法: 在应用程序前后分别加三个双引号,代码如下: [c-sharp] view plaincopyprint? Set wshell=CreateObject("WScript.Shell") wshell.Run  """C:/Program Files/360/360se/360se.exe""",5,True Set wshe