UVA-10115 Automatic Editing

来源:互联网 发布:apache weblogic 插件 编辑:程序博客网 时间:2024/06/01 08:53

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;}


1 0
原创粉丝点击