hiho 1082 : 然而沼跃鱼早就看穿了一切

来源:互联网 发布:揭秘网络真人赌博作弊 编辑:程序博客网 时间:2024/05/20 07:52

描述


fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼(“marshtomp”,不区分大小写)。为了使句子不缺少成分,统一换成 “fjxmlhx” 。

输入

输入包括多行。

每行是一个字符串,长度不超过200。

一行的末尾与下一行的开头没有关系。

输出

输出包含多行,为输入按照描述中变换的结果。

样例输入
The Marshtomp has seen it all before.marshTomp is beaten by fjxmlhx!AmarshtompB
样例输出
The fjxmlhx has seen it all before.fjxmlhx is beaten by fjxmlhx!AfjxmlhxB



#include <iostream>#include <string.h>#define MAX (200+1)using namespace std;char* replace(char str[],char reg[], char info[]);int compareStr(char str1[], char str2[]);int main(void){char buffer[MAX];char reg[] = "marshtomp";char info[] = "fjxmlhx";while(gets(buffer)!=NULL){printf("%s\n",replace(buffer,reg,info));}return 0;}char* replace(char str[],char reg[], char info[]){char temp[MAX];int end = strlen(str) - strlen(reg); int regLen = strlen(reg);int infoLen = strlen(info);int inIdx = 0;int i = 0;while(i<=end){if(compareStr(str+i,reg)){strcpy(temp+inIdx,info);inIdx+=infoLen;i+=regLen;}else{temp[inIdx++] = str[i++];}}while(str[i]){temp[inIdx++] = str[i++];}temp[inIdx] = '\0';strcpy(str,temp);return str;}int compareStr(char str1[], char str2[]){char compareC;for(int i=0; i<strlen(str2);i++){compareC = tolower(str1[i]);if(str2[i]-compareC) return 0;}return 1;}

0 0
原创粉丝点击