web-dev-qa-db-ja.com

C ++で文字列を文字の配列に分割

文字列を入力し、個々の文字に分割する必要があるプログラムを書いています。基本的に、 "string"を["s"、 "t"、 "r"、 "i"、 "n"、 "g"]に変換する方法を見つける手助けが必要です。文字列は、デフォルトの文字の配列ではなく、文字列データ型を使用して格納されます。私はそれをそのままにしてcharを避けたいですが、必要に応じて使用します。

どんな助けでもニースで​​す、事前にありがとう。

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

それが説明することを願っています

15
Luca Matteis

文字列がすでに入力されていると仮定します。

string s("string");
vector<char> v(s.begin(), s.end());

これは、文字列の文字でベクターvを埋めます。

20
Ryan

_std::string_のc_str()メソッドを使用してみてください。

_#include <string>
using namespace std;

int main(void)
{
  string text = "hello";
  size_t length = text.length() + sizeof('\0');
  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;
}
_
1
Thomas Matthews

文字列は、基礎となる文字のシーケンスです(つまり、std :: stringの場合はchar、std :: wstringの場合はwchar_t)。

そのため、各文字を簡単に取得できます。

for (std::string::size_type l = 0; l < str.length(); ++l)
{
    std::string::value_type c = str[l];
}
1
string input ="some string for example my cat is handsome";
vector<string> split_char_to_vector(string input) {
  vector<string> output;
  for(size_t i=0;i<=input.length();i++) {
    output.Push_back(input[i]));
  }
  return output;
}
0
sameraze agvvl