程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-C++小白來提問,關於回文數

c++-C++小白來提問,關於回文數

編輯:編程綜合問答
C++小白來提問,關於回文數

編寫回文數的代碼中遇到這麼一段

    int i = 0;
    int j = 0;
    while ((i <= (int)strlen(str) / 2) && (j == 0))
    {
        if (*(str + i) == *(str + (strlen(str) - i) - 1)) 
        {
            i++;
        }
        else
            j = 1;
    }
    return j == 0 ? 1 : 0;

這段怎麼理解啊,尤其是
if (*(str + i) == *(str + (strlen(str) - i) - 1))
有點看不懂。。。
謝謝解答哈。

最佳回答:


回文是從兩邊開始,i 從前往後,

比如str是0123456789

那麼i=0時,*(str + i)就是0,

strlen(str) - i, 是從後往前, 但是需要-1,比如9是在第10位,但是str[9]位置

*(str + (strlen(str) - i) - 1) 就是9

如果這兩個相等,if (*(str + i) == *(str + (strlen(str) - i) - 1)) 就是這句話的意思,再往下走,i++,就是走到1和8的位置,比較

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved