C/C++中输入带空格的字符串用法总结

在C/C++中,传统的输入流scanf(“%s”,&str) 和cin>>str,遇到空格会返回空格之前的字符串。但是在很多应用中,我们需要字符串中可以同时包含空格,那么前面的两种方法现在就不可用了,在C/C++中给我们提供了那些输入流处理方式呢。下面是我总结的几种常用的方法:

1)gets(char *str)
  需要包含头文件#include <stdio.h>2scanf("%[^\n]]",str)
  需要包含头文件#include <stdio.h>,这种方法需要对正则表达式有一定的理解,例如:scanf("%[a-z A-Z 0-9]",str)表示只匹配输入是大小写字母和数字。3)getline(cin,string str)
  需要包含头文件#include <string>,因为getline是string类成员对象,例如string::getline,其中第一个参数要求是输入流对象的引用&istream。4cin.getline(char *str, int maxnum)
  需要包含头文件#include <iostream>,因为这里的getline是输入流的成员对象,如:istream::getline.

下面是测试用例代码:

#include <iostream>  
#include <stdio.h>  
#include <string>  
using namespace std;  
int main()  
{  
    char str[100];  
    string str1;  
    //cin>>str;  
    //scanf("%s", &str);  
    //printf("%s", str);  
    //scanf("%[a-z A-Z 0-9]",str);  
    //scanf("%[^\n]]",str);  
    getline(cin,str1);  
    //gets(str);  
    //cin.getline(str, 10);  

    cout<<str<<endl;  
    system("pause");  
    return 0;     
}  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值