2013-09-10 3 views
-2

Во-первых, я новичок C++. Извините, если этот вопрос звучит глупо.Проблемное преобразование из unsigned_int в size_t

У меня возникла проблема с преобразованием из 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; 
} 

Он жалуется, когда он работает на этой линии:

for (size_t i = 0; i < str.length; i++) 

Любые мысли будут высоко оценены. Он останавливает VS от компиляции.

+2

Ах, оправляется Java программист? Проконсультируйтесь с [ссылкой на библиотеку] (http://en.cppreference.com/w/cpp/string/basic_string), когда у вас возникли проблемы с запоминанием или пониманием того, как выглядит определенный интерфейс библиотеки. –

+2

Для дальнейшего использования вы можете прочитать [контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist). Одна точка в контрольном списке: «Если ваш код не компилируется, включили ли вы точную ошибку компилятора?» –

ответ

8

length член std::string является функция, так что вы должны назвать его:

for (size_t i = 0; i < str.length(); i++) 
//   Note function call ^^ 
Смежные вопросы