The Seven Percent Solution

来源:互联网 发布:北京世纪中彩网络诈骗 编辑:程序博客网 时间:2024/05/16 14:32

想复杂了。。。

    #include <stdio.h>    #include <string.h>    #define M 80    int main()    {        char a[M];        int i;        while(gets(a))        {            if(a[0] == '#') break;            for(i=0;((a[i]!='\0')&&(a[i] != '\n')); i++)            {                if(a[i]==' ') printf("%%20");                else                    if(a[i]=='!') printf("%%21");                    else                        if(a[i]=='$') printf("%%24");                        else                            if(a[i]=='%') printf("%%25");                            else                                if(a[i]=='(') printf("%%28");                                else                                    if(a[i]==')') printf("%%29");                                    else                                        if(a[i]=='*') printf("%%2a");                                        else printf("%c",a[i]);            }            printf("\n");        }        return 0;    }

一开始想的是这样的,但是一直出不来结果,不知道是哪里错了,求大神指点。。。

#include<stdio.h>#include<string.h>#define N 80char b[240];int len, length;int fun1(char a, int len){    int n = len;    switch(a){        case ' ':            a = '0';            len -= 2;            break;        case '!':            a = '1';            len -= 2;            break;        case '$':            a = '4';            len -= 2;            break;        case '%':            a = '5';            len -= 2;            break;        case '(':            a = '8';            len -= 2;            break;        case ')':            a = '9';            len -= 2;            break;        case '*':            a = 'a';            len -= 2;            break;        default:            break;    }    if(n-len == 2)    {        b[len] = '\%';        b[len+1] = '2';        b[len+2] = a;    }    else b[len] = a;    len -= 1;    return 0;}int main(){    char a[N];    int i=0;    while(gets(a))    {        len = 0;        length = 0;        if(a[0] == '#') break;        while(a[i] != '\0' )        {                if(a[i] == ' '||a[i] == '!'||a[i] == '$'||a[i] == '%' || a[i] == '('||a[i] == ')'||a[i] == '*')                    len++;                length ++;                i++;        }        len = length + 2*len;        b[len+1] = '\0';        while(length--)        {            fun1(a[length], len);        }        printf("%s\n", b);        }    return 0;}