HDU 2719 The Seven Percent Solution

来源:互联网 发布:python unicode转ascii 编辑:程序博客网 时间:2024/06/06 10:45

水题,坑,开始数组给小了,一支PE,后开始用动态delete位置放错,放在while循环里面只申请了一片位置,多次释放会出错,一直WA

一开始的数组

#include <iostream>#include <cstdio>#include <cstring>using namespace std;char str[105];int main(){    int len,i;    while(gets(str)){        if(str[0]=='#')        break;        len = strlen(str);        for(i=0;i<len;i++){            if(str[i]==' ')            cout<<"%20";            else if(str[i]=='!')                cout<<"%21";            else if(str[i]=='$')                cout<<"%24";            else if   (str[i]=='%')                cout<<"%25";            else if(str[i]=='(')                cout<<"%28";            else if(str[i]==')')                cout<<"%29";            else if(str[i]=='*')                cout<<"%2a";            else                cout<<str[i];        }        cout<<endl;    }    return 0;    }

动态

#include <iostream>#include <cstdio>#include <cstring>using namespace std;char *str = new char[10000];int main(){    int len,i;    while(gets(str)){        if(str[0]=='#')        break;        len = strlen(str);        for(i=0;i<len;i++){            if(str[i]==' ')            cout<<"%20";            else if(str[i]=='!')                cout<<"%21";            else if(str[i]=='$')                cout<<"%24";            else if   (str[i]=='%')                cout<<"%25";            else if(str[i]=='(')                cout<<"%28";            else if(str[i]==')')                cout<<"%29";            else if(str[i]=='*')                cout<<"%2a";            else                cout<<str[i];        }        cout<<endl;    }   delete [] str;    return 0;    }


用C++的string类,问题简单些
#include <iostream>#include <string>using namespace std;int main(){string str;int len,i;while(getline(cin,str)){if(str[0]=='#')break;len = str.size();for(i=0;i<len;i++){if(str[i]==' ')cout<<"%20";else if(str[i]=='!')cout<<"%21";else if(str[i]=='$')cout<<"%24";else if   (str[i]=='%')cout<<"%25";else if(str[i]=='(')cout<<"%28";else if(str[i]==')')cout<<"%29";else if(str[i]=='*')cout<<"%2a";elsecout<<str[i];}cout<<endl;}return 0;}



0 0
原创粉丝点击