uva 10115 Automatic Editing
来源:互联网 发布:c语言线程函数 编辑:程序博客网 时间:2024/06/07 00:20
字符串题目,代码里面用了一点vector的东西,主要使用string类,以前没怎么用过,总结一下用到的string类的几个成员函数:
string::find(string str, int start_pos)
在字符串里面找第一个出现子串str的位置,位置从0开始,如果找不到子串,返回string::npos
string::erase(int start_pos, int num)
擦除掉start_pos开始的num个字符
string::replace(int start_pos, int len, string str)
将字符串从start_pos开始的len个字符替换为字符串str
string::find(string str, int start_pos)
在字符串里面找第一个出现子串str的位置,位置从0开始,如果找不到子串,返回string::npos
string::erase(int start_pos, int num)
擦除掉start_pos开始的num个字符
string::replace(int start_pos, int len, string str)
将字符串从start_pos开始的len个字符替换为字符串str
综合应用上面的三个函数,这道题就好解决了。
#include <stdio.h>#include <string>#include <string.h>#include <algorithm>#include <iostream>#include <vector>using namespace std;#defineTEXT_LEN300struct node{string str1;string str2;};vector<struct node> m;void change(string &s, string str1, string str2){//cout << "change \"" << str1 << "\"to \"" << str2 << "\"" << endl;int pos;pos = 0;while(1){pos = s.find(str1, pos);if(pos == string::npos)break;if(str2.length() > 0){s.replace(pos, str1.length(), str2);pos ++;}else{s.erase(pos, 1);}if(pos >= s.length())pos = 0;}}int main(void){string s1, s2, s;s.resize(TEXT_LEN);char buffer[TEXT_LEN];int n, i;vector<struct node>::iterator it;struct node word_pair;while(1){gets(buffer);sscanf(buffer, "%d", &n);if(!n)break;m.clear();for(i=1; i<=n; i++){gets(buffer);word_pair.str1.assign(buffer);gets(buffer);word_pair.str2.assign(buffer);m.push_back(word_pair);}gets(buffer);s.assign(buffer);for(it=m.begin(); it!=m.end(); it++){change(s, it->str1, it->str2);}cout << s << endl;}return 0;}
- UVa 10115 Automatic Editing
- uva 10115 Automatic Editing
- UVa 10115 - Automatic Editing
- UVa 10115 - Automatic Editing
- uva-10115 - Automatic Editing
- UVa 10115 - Automatic Editing
- UVA 10115 - Automatic Editing
- UVa 10115 - Automatic Editing
- UVa 10115 - Automatic Editing
- UVA 10115 Automatic Editing
- uva 10115 - Automatic Editing
- UVA 10115 Automatic Editing
- uva 10115 Automatic Editing
- uva 10115 automatic editing
- uva - 10115 - Automatic Editing
- UVa 10115 - Automatic Editing
- UVA 10115 Automatic Editing
- UVa 10115 Automatic Editing
- linux-2.6.32在mini2440开发板上移植 --配置USB外设
- Java Socket、 Android网络工具类
- AIDE 2.1.0幸运破解器的破解补丁
- NET自带的Chart如何取值。
- C语言变量类型隐式转换小陷阱
- uva 10115 Automatic Editing
- linux-2.6.32在mini2440开发板上移植---SD卡驱动移植
- hdu 4746 Mophues
- 阿里巴巴2013笔试题
- 线程基本控制
- linux-2.6.32在mini2440开发板上移植 ---移植UDA1341 音频驱动
- 数组划分
- 阿里巴巴2014校招笔试题-2013年9月14日
- linux-2.6.32在mini2440开发板上移植---移植I2C-EEPROM 驱动