首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么翻转字符串

2013-11-20 
如何翻转字符串。比如:char [20] 12.31.41.172转成“12.31.41.172”[解决办法]首先整个逆序,然后将每个

如何翻转字符串。
比如:
char [20] = "12.31.41.172";
转成“12.31.41.172”
[解决办法]
首先整个逆序,然后将每个点分字段逆序
[解决办法]

引用:
首先整个逆序,然后将每个点分字段逆序



void Reverse(char* head,char* tail) {
if (!head&&tail) return;
for ( int i = 0,j = tail-head; i<j; ++i, --j ) {
char tmpC  = head[i];
head[i] = head[j];
head[j] = tmpC;
}
}
int main(){

char str[20] = "12.31.41.172";

//整个逆序
Reverse(str,str+strlen(str)-1);

//挨个点内逆序
char* tmpHead = str;
for( int i = 0; i != strlen(str); ++i ) {
if ( str[i] == '.' ){
Reverse(tmpHead,str+i-1);
tmpHead = str+i+1;
}
if ( i == strlen(str) - 1 ) {
Reverse(tmpHead,str+i);
}
}
printf("%s",str);

return 0;
}

输出:
172.41.31.12

热点排行