5-1 字符串替换 (10分)
来源:互联网 发布:ipad防沉迷软件 编辑:程序博客网 时间:2024/06/05 13:24
将文本文件中指定的字符串替换成新字符串。 由于目前的OJ系统暂时不能支持用户读入文件,我们编写程序从键盘输入文件中的内容,当输入的一行为end时,表示结束。end后面有两个字符串,要求用第二个字符串替换文本中所有的第一个字符串。
输入格式:
Xi’an Institute of Posts and Telecommunications is co-designed and implemented by the People’s Government of Shaanxi Province and the Ministry of Industry and Information Technology. The Institute is located in Xi’an, a historic city in Northwest China, famous for its magnificent ancient culture.
end (表示结束)
Institute (第一个字符串,要求用第二个字符串替换)
University (第二个字符串)
输出格式:
Xi’an University of Posts and Telecommunications is co-designed and implemented by the People’s Government of Shaanxi Province and the Ministry of Industry and Information Technology.The University is located in Xi’an, a historic city in Northwest China, famous for its magnificent ancient culture.
输入样例:
Xi’an Institute of Posts and Telecommunications is co-designed and implemented by the People’s Government of Shaanxi Province and the Ministry of Industry and Information Technology.The Institute is located in Xi’an, a historic city in Northwest China, famous for its magnificent ancient culture.endInstituteUniversity
输出样例:
Xi’an University of Posts and Telecommunications is co-designed and implemented by the People’s Government of Shaanxi Province and the Ministry of Industry and Information Technology.
The University is located in Xi’an, a historic city in Northwest China, famous for its magnificent ancient culture.
解析:使用string容器中的find来查找,replace来替换。另外需注意换行,使用getline来确定哪里需要换行。
关于find函数的返回值:1、找到,返回找到字符的地址或字符串的首地址; 2、没找到,返回string::npos
#include <iostream>#include <string>#include <vector>using namespace std;int main () {int found;string s1, s2, s;vector<string> v;getline(cin, s); //接收一串子直到碰到换行符(不包括换行符) v.push_back(s + '\n');while (1) {getline(cin, s);if ( s.compare("end") == 0 )//相等返回0.小于返回负数,反之正数 break;else {s += '\n';v.push_back(s);}}cin >> s1 >> s2;for ( int i = 0; i < v.size(); i++ ) {found = v[i].find(s1);// std::string::npos = -1while ( found != std::string::npos ) {//从第found个元素开始,连续s1.lenth()个元素,替换s2 v[i].replace(found, s1.length(), s2);//找下一个s1 found = v[i].find(s1, found + 1);}}vector<string>::iterator it;for ( it = v.begin(); it != v.end(); it++ ) {cout << *it;}return 0;}
- 5-1 字符串替换 (10分)
- stringByReplacingOccurrencesOfString 去掉字符串,替换空格等等
- 替换字符串中部分字符串,java
- 替换字符串中部分字符串,java
- 字符串内部分替换的方法
- 经验 - R - 替换字符串中部分字符
- mysql替换字段中部分字符串
- emacs 批量替换
- 4-1 将字符串中数字字符替换成# (50分)
- 5-59 大笨钟 (10分)
- 5-1 字符串反正序连接 (10分)
- PHP常用字符串正则替换及剖分函数比较
- 8.2.5 替换字符串
- 【字符串1】-替换空格
- 5-14 Shuffling Machine (20分)
- 5-12 打印沙漏 (20分)
- 5-24 换硬币 (20分)
- 5-35 黑洞数 (20分)
- 吹牛逼的艺术
- loadrunner脚本参数化
- 在 win7 64 上伪分布式部署 Hadoop 2.7.3
- 动态规划9
- 详解Java8特性之Stream API并行流
- 5-1 字符串替换 (10分)
- Distributed File System Learn Test
- 一个简单的java图形
- 204. Count Primes
- 列车车厢重排
- hdoj 6023 Automatic Judge
- 快捷切换hosts小工具:SwitchHosts!
- Github简单介绍及使用(转载知乎用户--珊姗是个小太阳)
- 保存session id的几种方式