Как получить доступ к каждому члену std :: string? - PullRequest
2 голосов
/ 11 февраля 2011

Как я могу получить доступ к каждому члену в переменной std :: string?Например, если у меня есть

string buff;

, предположим, buff conatains "10 20 A" в качестве содержимого ASCII.Как я мог тогда получить доступ к 10, 20 и A отдельно?

Ответы [ 3 ]

5 голосов
/ 11 февраля 2011

Вот вам ответ на SO:

Как я могу токенизировать строку в C ++?

Есть много способов скинуть эту кошку ...

3 голосов
/ 11 февраля 2011

Вы можете получить доступ к строкам по индексу.то есть Дафф [0], Дафф [1] и Дафф [2].

Я только что попробовал.Это работает.

string helloWorld[2] = {"HELLO", "WORLD"};
char c = helloWorld[0][0];
cout << c;

Это выводит "H"

1 голос
/ 11 февраля 2011

Ну, я вижу, вы пометили и C, и C ++.

Если вы используете C, строки представляют собой массив символов.Вы можете получить доступ к каждому символу, как к обычному массиву:

char a = duff[0];
char b = duff[1];
char c = duff[2];

Если вы используете C ++ и массив символов, см. Выше.Если вы используете std::string (именно поэтому C и C ++ должны быть помечены отдельно), существует множество способов получить доступ к каждому символу в строке:

// std::string::iterator if you want the string to be modifiable
for (std::string::const_iterator i = duff.begin(); i != duff.end(); ++i)
{
}

или:

char c = duff.at(i); // where i is the index; the same as duff[i]

и, возможно, больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...