题意: 对某些特定字符转换 思路:优先判断特殊字符的转换,最后判断相应字符是否输出. 注意:结束符 "EOF"可以出现在任意位置. 代码: #include <cstdio> #include <cstring> #include <iostream> using namespace std; int main(void) { char s[90]; char tmp[] = "floyd"; while(true) { gets(s); int i,j,len = strlen(s),k=0; char str[90]; bool flag = false; for(i=0; i<len; ++i) { if(s[i] == 'E' && s[i+1] == 'O' && s[i+2] == 'F') { flag = true; break; } else if(s[i] == ' ') str[k++] = ' '; else if(s[i] == 'd' && s[i+1] == 'd') { str[k++] = 'p'; i++; } else if(s[i] == 'e' && s[i+1] == 'i' && s[i-1] != 'c') { str[k++] = 'i'; str[k++] = 'e'; i++; } else if(s[i] == 'p' && s[i+1] == 'i' && s[i+2] == 'n' && s[i+3] == 'k') { for(j=0; j<5; ++j) str[k++] = tmp[j]; i += 3; } else if(s[i] >='a' && s[i] <= 'z') str[k++] = s[i]; } if(!flag) { str[k] = '/0'; printf("%s/n",str); strcpy(s,""); } if(flag) { str[k] = '/0'; printf("%s/n",str); strcpy(s,""); break; } } return 0; }