如何翻转字符串。
比如:
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