本實例實現字符串原地反轉:雙指針首尾交換,直到中間相遇。
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
void reverse(char* s) {
int len = 0;
char* p = s;
while (*p != 0) { len++; p++; }
int i = 0;
char c;
while (i <= len / 2 - 1) {
c = *(s + i);
*(s + i) = *(s + len - 1 - i);
*(s + len - 1 - i) = c;
i++;
}
}
int main() {
char s[] = "www.runoob.com";
printf("'%s' =>\n", s);
reverse(s);
printf("'%s'\n", s);
return 0;
}
'www.runoob.com' =>
'moc.boonur.www'
可使用標準庫 strrev(非標準)或自寫通用函數。注意字符串必須可修改(非常量)。