正在学习ios开发,在前期学习c时,常规方法直接倒转数组的值,只能用于非中文字符,否则出现乱码,

在网上找了点资料,可能是 IDE不一致,一直得不到自己想要的值。花时间自己改了一下,正常通过

 

//字符串倒转
char *MyInverseStr(char _soruce[])
{
    int x=strlen(_soruce);
    //char strrRev[strlen((char *)_soruce)]; //采用sizeof(_source),sizeof((char *)_source)获取不到正确值.而strlen((char *) _source),strlen(_source)不能直接当变量使用,必须先赋值给指定的变量
    char strrRev[x+1]; //
    int j=0;
    for (int i=strlen(_soruce)-1; i>=0; i--) {
        if(_soruce[i]>127 || _soruce[i]<0) //是汉字
        {
            strrRev[j]=_soruce[i-2];
            strrRev[j+1]=_soruce[i-1];
            strrRev[j+2]=_soruce[i];
            i-=2;
            j+=2;
            
        }
        else
        {
            strrRev[j]=_soruce[i];
        }
        j++;
    }
    strrRev[j]='\0';
    return strrRev;
}

 

新手勿喷!

posted on 2015-09-21 09:42  青羽飞扬  阅读(441)  评论(0)    收藏  举报