UVA 10115 - Automatic Editing(字符串替换问题)
2012-12-31 20:06
525 查看
这是一道替换字符串中关键字的题。就像word中用一字符串替换另外一个文本中包含的字符串。
下面代码中,找到被替换串位置后用了4步进行替换:
1、被替换串起始位置之前的字符串复制到临时字符串中;
2、将新字符串复制到临时字符串中;
3、将被替换串结束位置后的字符串复制到临时字符串中;
4、将临时字符串复制到原字符串
下面代码中,找到被替换串位置后用了4步进行替换:
1、被替换串起始位置之前的字符串复制到临时字符串中;
2、将新字符串复制到临时字符串中;
3、将被替换串结束位置后的字符串复制到临时字符串中;
4、将临时字符串复制到原字符串
#include <stdio.h> #include <string.h> // 该函数实现将字符串str1中的str2字符串替换为str3 bool replace(char str1[], char str2[], char str3[]) { bool flag = true; char *x1 = strstr(str1, str2); if (x1 == NULL) { return false; } int len1 = strlen(str1); int len2 = strlen(str2); int len3 = strlen(str3); int j = 0, i; char tmp[1050]; for (i=0; i<(x1-str1); i++) tmp[j++] = str1[i]; for (i=0; i<len3; i++) tmp[j++] = str3[i]; for (i=(x1-str1+len2); i<len1; i++) tmp[j++] = str1[i]; tmp[j] = '\0'; strcpy(str1, tmp); return true; } int main() { char str[1050]; char a[15][1050], b[15][1050]; int n; while (scanf("%d", &n) && n) { getchar(); for (int i=0; i<n; i++) { gets(a[i]); gets(b[i]); } gets(str); for (int i=0; i<n; i++) { while (replace(str, a[i], b[i])); } printf("%s\n", str); } return 0; }
相关文章推荐
- UVa10115 - Automatic Editing- 字符串(子串替换)-难度2
- UVA 10115-Automatic Editing(运用字符串函数对字符串进行替换)
- UVa 10115 Automatic Editing (字符串中间替换技巧)
- UVA 10115 Automatic Editing (字符串的替换和查找)
- JAVA项目开发中常遇到的字符串替换问题
- 剑指Offer之字符串空格替换问题
- 面试之路(20)-字符串中空格替换一类问题详解
- C++中 替换string类型字符串中汉字的问题
- UVa 123 Searching Quickly (使用STL replace进行字符串替换)
- 字符串替换问题
- UVA 10115(字符串)
- python 中字符串连接+、join、%替换三种效率问题
- (二十一)java字符串替换的问题
- 字符串问题---字符串的调整与替换
- 字符串中的空格替换问题(Java版)
- 字符串替换问题
- phpcms V9 内联/关联链接 字符串较长链接无法正确替换的问题完美解决
- 忽略HTML标签的字符串替换问题
- String笔记,字符串没替换掉,同样的问题自己坑自己好多次了,记下来!!!
- Automatic Editing - UVa 10115 字符串处理