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

C++ string 長度獲取錯誤:.length() 是方法而非屬性

     編輯:程式設計疑難解答

錯誤代碼

string i;
cin >> i;
for (a = 0; a < i.length; a++)  // 編譯錯誤:'length' 非成員變量
    b = b + a;

正確寫法

for (a = 0; a < i.length(); a++)  // 加括號調用方法
    b = b + a;

補充說明

  • std::string 沒有公開的 length 數據成員,只有 size() 和 length() 兩個**成員函數**,功能完全等價,返回 size_t。
  • C++ 風格傾向使用 size()(與 STL 容器一致),但 length() 為了兼容 C 風格習慣保留。
  • 範圍 for 循環更現代:
    for (char c : i) { /* 處理 c */ }

代碼其他問題提示

  • void main() 非標準,請用 int main() 並 return 0;。
  • cout.setf(ios::hex) 影響後續輸出格式,注意配對 unsetf。
  • 邏輯中 b = b + a 只是累加索引,非字符值轉換;若要解析十六進制字符串,請用 stoul(str, nullptr, 16)。

核心修正:**i.length() 加括號**即可通過編譯。

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