首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例35:字符串逆序(原地反轉)

     編輯:C 語言實例練習

C語言練習實例35:字符串逆序(原地反轉)

本實例實現字符串原地反轉:雙指針首尾交換,直到中間相遇。

源代碼

// 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(非標準)或自寫通用函數。注意字符串必須可修改(非常量)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved