首页 > 解决方案 > 循环错误的有符号和无符号整数表达式之间的比较

问题描述

我正在编写一个通过字符串的程序,但在 for 循环中它给了我一个错误,我发现网上的答案只使用了向量。

std::string str = "Test";
for (int i = 0, max = str.size; i < max; i++) 

标签: c++string

解决方案


std::string::size是一个成员函数,你需要调用它:

for (int i = 0, max = str.size(); i < max; i++)
//                            ^^ here

...并且为了解决有符号-无符号转换的问题:

for (std::size_t i = 0, max = str.size(); i < max; i++)
//   ^^^^^^^^^^^ index type for standard library container

此外,如果您需要处理char 字符串中的每个,请考虑使用基于范围的 for 循环;

for (char c : str)
   // ...

推荐阅读