UVA - 10115 Automatic Editing

来源:互联网 发布:犀牛软件分割模型 编辑:程序博客网 时间:2024/06/05 20:06

UVA - 10115 Automatic Editing

题目大意:给出 find 字符串和 replace 字符串 以及一段文字,将文字中所有与 find 相等的字符串替换为 replace 字符串。

解题思路:strstr( )返回第一个子串的位置,用两个指针把文字截断,分别保存即可。百度了才知道还有 strstr( ) 这种黑科技。

注意点:

  1. cin 后似乎有一个换行符还在缓冲区,要getchar( ) 掉。
  2. getline( ) 读入的字符是参数数字 -1 ,被坑了两次。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main() {   int n , i , j ;   char s[500] , s2[500],f[15][100] , r[15][100] , *p , *q;   while( cin >> n , n) {       getchar();       for( i = 0; i < n ; i++ ) {         cin.getline(f[i] , 101 );         cin.getline(r[i] , 101 );       }   cin.getline( s , 505 );   for( i = 0; i < n ;i++) {      while( p = strstr(s,f[i]), p != NULL) {           q = p + strlen(f[i]);           strcpy( s2 , r[i] );           strcat( s2 , q );           strcpy( p , s2 );       }   }   cout << s << endl;  } return 0;}
0 0
原创粉丝点击