Разделить строку на массив символов в C++

Я пишу программу, которая требует, чтобы строка была введена, а затем разбита на отдельные буквы. По сути, мне нужна помощь в поиске способа превратить "строку"в ["s","t","r","i","n","g"]. Строки также хранятся с использованием строкового типа данных, а не только массива символов по умолчанию. Я хотел бы сохранить его таким образом и избежать char, но будет использовать его, если это необходимо.

любая помощь была бы хорошей, спасибо заранее.

4 ответов


string a = "hello"; 
cout << a[1];

Я надеюсь, что это объясняет


предполагая, что вы уже ввели строку:

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;
}