Если строка - это всего лишь массив символов, то считается ли это неправильным кодированием прямой доступ к индексу строки? например...
string test = "Hello";
cout << text.[0];
int lenOfTest = (int)test.length();
for(int i = 0; i < lenOfTest; i++ ){
cout << test[i];
}
std::string
не является простым массивом char
, хотя это контейнер char
, и да, вы можете нормально обращаться к каждому из его элементов. Просто не используйте точку перед открытием [
как вы делали в своей второй строке.
std::string
действительно оборачивает массив char
, к которому у вас есть полный доступ.
Я не думаю, что плохой практикой является доступ к элементу char с помощью оператора [], однако имейте в виду, что доступ к подобному символу не приведет к возникновению исключения в случае использования позиции invalide. Чтобы создать исключение, используйте string::at
.
text.[0]
Я думаю, это какая-то опечаткаstd::string
- это не просто массив символов. Это стандартный класс, который перегружает[]
для доступа к элементам строки.