zoukankan      html  css  js  c++  java
  • POJ 1572 字符串替换

    http://poj.org/problem?id=1572     

    看了网上那么多行的C++代码的做法我也是被吓到了,其实用C++的string类函数很简单啊

    关键是替换的字符串不能回头,不然有些测试数据,一个循环过后,你又回头重新再新串中去查,很可能就无限循环了。

    1.假如定义一个string s[1],则定义了一个字符串数组:

    string s[2];
    s[1]="01234 5678";

    cout<<s[1].length()<<" "<<s[0].length()<<endl;

    输出0 10

    如果用getline(cin,string*),则会读取整个一行作为一个字符串存储在string*中,包括空格。

    2.             str3.erase(index,str1[i].length());//删除index的位置
                    str3.insert(index,str2[i]);//插入到index位置


                  比如str=abana str1=ban,str2=ny,则index返回1,从2开始删除,删除到str1的长度。

                 之后str=ana,insert把str2插入下标1的位置,插入长度为str2的长度。


    #include <iostream>
    #include <cstdio>
    #include <string>
    using namespace std;
    
    int main()
    {
        //freopen("in.txt","r",stdin);
        while(1)
        {
            int n;
            scanf("%d",&n);
            if(n==0)
                break;
            string str1[12];
            string str2[12];
            getchar();
            for(int i=0; i<n; i++)
            {
                getline(cin,str1[i]);
                getline(cin,str2[i]);
            }
            string str3;
            getline(cin,str3);
            for(int i=0; i<n; i++)
                while(1)
                {
                    int index=str3.find(str1[i]); //查找要替换的字符串位置,没有返回string::npos,返回到查找到的串的第一个字符的下标
                    if(index==string::npos)
                        break;
                    str3=str3.replace(index,str1[i].length(),str2[i]); //replace函数直接替换,或者用erase和insert也行
                    //str3.erase(index,str1[i].length());//删除index的位置
                    //str3.insert(index,str2[i]);//插入到index位置
                }
            cout<<str3<<endl;
        }
        return 0;
    }
    



  • 相关阅读:
    PHP 快速实现大文件上传
    websocketd
    mybatis——一级缓存、二级缓存
    mybatis学习——多对一和一对多查询
    XML文件存在中文注释报错问题( 3 字节的 UTF-8 序列的字节 3 无效)
    mybatis设置自动提交事务
    mybatis之Param注解
    mybatis学习——实现分页
    mybatis学习——日志工厂
    mybatis——解决属性名和数据库字段名不一致问题
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256415.html
Copyright © 2011-2022 走看看