Разделить строку на массив символов в C++
Я пишу программу, которая требует, чтобы строка была введена, а затем разбита на отдельные буквы. По сути, мне нужна помощь в поиске способа превратить "строку"в ["s","t","r","i","n","g"]. Строки также хранятся с использованием строкового типа данных, а не только массива символов по умолчанию. Я хотел бы сохранить его таким образом и избежать char, но будет использовать его, если это необходимо.
любая помощь была бы хорошей, спасибо заранее.
4 ответов
предполагая, что вы уже ввели строку:
string s("string");
vector<char> v(s.begin(), s.end());
это заполнит вектор v
с символами из строки.
строка - это просто последовательность базового символа (например, char для std::string и wchar_t для std::wstring).
из-за этого вы легко сделать каждая буква:
for (std::string::size_type l = 0; l < str.length(); ++l)
{
std::string::value_type c = str[l];
}
попробуйте использовать c_str()
метод std::string
:
#include <string>
using namespace std;
int main(void)
{
string text = "hello";
size_t length = text.length() + sizeof('');
char * letters = new char[length];
strcpy(letters, length.c_str());
for (unsigned int i = 0; i < length; ++i)
{
cout << '[' << i << "] == '" << letters[i] << "'\n";
}
return EXIT_SUCCESS;
}