您的位置:首页 > 其它

UVA-10115 Automatic Editing

2016-07-14 09:47 288 查看
2016-07-12


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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: