一、读入带空格的字符串

由于NOIP官方开始使用C++14编译器,C语言中用于读取带空格字符串的gets()函数已经不可以再用了。作为替代,有以下方法。

  • cin.getline()函数。
    函数格式:
    cin.getline(字符数组名, 最大读入字符数)
    作用:读入一行带空格的字符串
    由于最大读入字符数中包含了’\0’,因此真正允许读入的字符数会比这个数字少1
    一般将这个参数填为数组的长度即可。
    例: cin.getline(s, 100); 最多能读入99个字符保存到字符数组s

  • 如果使用string类,可以使用getline()函数读入带空格的字符串
    getline(cin, string类对象)

例题:ybt 2046:【例5.15】替换字母

解法1:使用字符数组

#include<bits/stdc++.h>
using namespace std;
int main()
{char s[205], a, b;cin.getline(s, 205);//读入带空格的字符串,最多可以读入204个字符cin >> a >> b;int len = strlen(s);for(int i = 0; i < len; ++i){if(s[i] == a)s[i] = b;}cout << s;return 0;
}

解法2:使用string类

#include<bits/stdc++.h>
using namespace std;
int main()
{string s;char a, b;getline(cin, s);cin >> a >> b;for(int i = 0; i < s.length(); ++i){if(s[i] == a)s[i] = b;}cout << s;return 0;
}

二、输入输出重定向

NOIP复赛需要从文件读入数据,向文件写入数据,所以需要在程序中写输入输出重定向。题目会指明从哪个文件读,向哪个文件写。
假设:输入数据文件名为:test.in, 数据输出到文件:test.out,在程序中必须这样写:

#include<bits/stdc++.h>
using namespace std;
int main()
{freopen("test.in", "r", stdin);freopen("test.out", "w", stdout);//在这里写主函数的代码//...fclose(stdin);fclose(stdout);
}

关于读入带空格的字符串与输入输出重定向相关推荐

  1. C/C++中带空格的字符串的输入

    问题一:带空格的字符串输入(c++) 对于字符数组 方法一:getline() 读入整行数据,使用回车键输入的换行符来确定输入结尾. 调用方法: cin.getline(str, len) 第一个参数 ...

  2. shell 脚本比较字符串相等_比较带空格的字符串相等的Shell脚本 如何比较两个.....

    ****************************比较带空格的字符串相等的Shell脚本*************************** 如果要比较的字符串中间有空格,可以用下面的程序(摘 ...

  3. 如何输入一串带空格的字符串?

    2016年11月16日                                    星期三                                     阴 如何输入一串带空格的字 ...

  4. 带空格的字符串输入问题

    #include<iostream> #include<string> using namespace std; int main(){string s1,s2;char s3 ...

  5. C语言带空格的字符串输入——gets()函数、scanf()函数缺陷以及改进后的gets_s()函数、scanf_s()函数的简单用法(上)

    **在C语言中,带空格的字符串输入问题相对而言还是比较"坑"的,所以呢,小编就决定要专门谈一谈这个问题,希望对于初学者能够有所帮助. 该篇主要简述了C语言中gets()函数以及sc ...

  6. C++ 读入整行带空格的字符串,并将字符串按照特定符号划分成多个子串

    在处理输入的时候,有时需要输入一整行字符串,而字符串中包含类似空格,tab这样的特殊符号,直接用cin读入时不能得到预期效果,这里介绍一下C++中的整行字符串读入方法. istream& ge ...

  7. 使用scanf()函数接收带空格的字符串

    sanf()函数在接收字符串时,遇到空格就会停止接收.可以使用gets()函数代替,但也可以用以下方式解决: 比如: int main() { char a[20]; scanf("%[^\ ...

  8. 蓦然回首,那人却在灯火阑珊处----如何读入多行带空格的字符串

    笔者在写这篇文章之前,经历过很多次失败,但是没有找到最终的解决方案,今日回首,带来一些方法,希望能够解决问题. 首先看一个例子,程序1 #include <iostream> #inclu ...

  9. 将带空格的字符串去掉空格.join()函数

    举例: f = " pri ng tshg " f是前后中间都有空格,如果要去掉前面的空格,可以如下: >>> print(f.lstrip()) pri ng ...

最新文章

  1. 第十五周程序阅读-范型程序设计(3)
  2. 笔记本敲代码真香,包邮送一个!
  3. mysql查询时有两条一模一样的结果应该只显示一条
  4. HDU 4085 Steiner树模板称号
  5. 【Magicodes.IE 2.0.0-beta1版本发布】已支持数据表格、列筛选器和Sheet拆分
  6. java并发编程(十七)内存操作总结
  7. python路线选择试题_python例题练习
  8. 创建一个JFrame,可下拉选择显示字符串和图片
  9. mysql 游戏背包_用sql实现背包问题
  10. mongo源码学习(四)服务入口点ServiceEntryPoint
  11. 如何动态确认每个输入的值都符合设定域
  12. RTP、RTCP及媒体流同步
  13. Java中json转map方法,简单快捷
  14. 手机号格式校验(大陆,香港)
  15. IP协议和IPX协议的区别
  16. 约瑟夫环(简单理解版)
  17. 时事点评——红芯浏览器事件
  18. [读书笔记]组件设计:补白[深入剖析ASP.NET组件设计]一书中HttpApplication对象创建的细节...
  19. Arduino LED闪烁
  20. 解决open-vm-tools安装时Failed to get unit file state for run-vmblockx2dfuse.mount

热门文章

  1. ORA-00119,ORA-00132 错误处理
  2. Impala:大数据丛林中敏捷迅速的黑斑羚
  3. STM32之通用定时器输出比较模式
  4. 致歉!抖音Semi Design承认参考阿里Ant Design
  5. 面进了心心念念的国企!以为TM上岸了!干了1年!我却再次选择回到互联网大厂内卷!...
  6. 一致性哈希的分析与实现
  7. 我就想加个索引,怎么就这么难?
  8. “钉钉打卡神器”开发者被判五年半!
  9. MyEclipse下XFire开发Webservice实例
  10. 有传闻说,写好总结可以升职加薪?