正在学习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; }
新手勿喷!
时间: 2024-10-01 04:17:57