有符号和无符号整数表达式之间的循环错误比较

时间:2019-07-01 14:21:59

标签: c++ string

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

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

1 个答案:

答案 0 :(得分:8)

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)
   // ...