从unsigned_int到size_t的有问题的转换

Roy*_*Roy -2 c++ size-t

首先,我是一个c ++新手.如果这个问题听起来很愚蠢,请原谅.

我遇到了从unsigned_int到size_t的转换问题,如VS编译器所示.以下是导致编译器抱怨的代码行.

size_t findNextAlphaNumericPosition(string &str)
{
    for (size_t i = 0; i < str.length; i++)
    {
        if (isalpha(str[i])) return i;
    }

    return -1;
}
Run Code Online (Sandbox Code Playgroud)

当它运行到这一行时它会抱怨:

for (size_t i = 0; i < str.length; i++)
Run Code Online (Sandbox Code Playgroud)

任何想法都将受到高度赞赏.它阻止VS编译.

Som*_*ude 8

length成员std::string是一个函数,所以你必须把它叫做:

for (size_t i = 0; i < str.length(); i++)
//            Note function call ^^
Run Code Online (Sandbox Code Playgroud)