UVA-10115 Automatic Editing
2016-07-14 09:47
288 查看
2016-07-12
题目大意:根据给出的替换规则替换字符串,要按照规则顺序,整个字符串都找不到后才能进行下一个规则。
解题思路:通过strstr与strncpy的互相结合,将字符串进行分割,运用strcpy与strcat对结果进行拼接。
这题是对strstr与strncpy的初步认识,后面有一题需要对strstr与strncpy熟练掌握。例:UVA-10361 Automatic Poetry
UVA - 10115 Automatic Editing
题目大意:根据给出的替换规则替换字符串,要按照规则顺序,整个字符串都找不到后才能进行下一个规则。解题思路:通过strstr与strncpy的互相结合,将字符串进行分割,运用strcpy与strcat对结果进行拼接。
这题是对strstr与strncpy的初步认识,后面有一题需要对strstr与strncpy熟练掌握。例:UVA-10361 Automatic Poetry
#include <iostream> #include <string.h> #include <cstdio> using namespace std; int main () { int rule_num; while ( cin >> rule_num && rule_num != 0 ) { getchar(); char rule[10000][10000]; for (int i = 0; i < rule_num*2; i++) gets(rule[i]); char str[1000]; gets(str); char nstr[1000]; strcpy( nstr , str ); for (int i = 0; i < rule_num*2; i += 2) while ( strstr( nstr , rule[i] ) != NULL) { char f[1000]; memset( f , '\0' , sizeof(f) ); strncpy( f , nstr , strstr(nstr,rule[i])-nstr );//将字符串在规则前的部分储存在f数组中 char b[1000]; memset( b , '\0' , sizeof(b) ); strncpy( b , strstr(nstr,rule[i])+strlen(rule[i]) , strlen(nstr) - (strstr(nstr,rule[i])-nstr) - strlen(rule[i]) );//将字符串在规则后的部分储存再b数组中 strcpy( nstr , f ); strcat( nstr , rule[i+1] ); strcat( nstr , b ); } cout << nstr << endl; } return 0; }
相关文章推荐
- ExtJS学习:MVC模式案例(二)
- jQuery实现下拉框多选 jquery-multiselect 的实例代码
- IOS中NSUserDefaults的用法(轻量级本地数据存储)
- HashMap中取出全部的key
- oracle基础教程:数据库的范式
- HashMap取出全部的value
- 安卓微信支付遇到的问题及解决办法
- Android Wear开发 - 数据通讯 - 第零节 : 打包Wear应用(手机和手表应用如何连接)
- 关于Java并发编程的总结和思考
- lower_bound()返回值
- TreeMap
- SQLServer 数据库变成单个用户后无法访问问题的解决方法
- java对象引用级别
- 关于catkin_make xbo_face_msgs
- ParcelableGenerator将任意对象转化为Parcelable类型
- WeakHashMap
- 决策树算法(二)——构建数据集
- oracle数据库中的函数依赖
- extjs学习
- UVA-644 Immediate Decodability