首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ 字串反轉:修正雙重循環邏輯實現正確輸出 54321

     編輯:程式設計疑難解答

原代碼雙重循環導致輸出 51234,目標是完整反轉為 54321。

正確算法:雙指針對稱交換

for (int i = 0, j = word.size() - 1; i < j; ++i, --j) {
    char temp = word[i];
    word[i] = word[j];
    word[j] = temp;
}

或用標準庫一行搞定:

#include <algorithm>
std::reverse(word.begin(), word.end());

原代碼問題

  • 外層 --i、內層 ++j 邏輯混亂,導致多次重複交換、越界風險。
  • 未正確處理中間元素(長度奇數時)。

掌握雙指針法,反轉字串/數組成為基本功。

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