2017-08-26 5 views
-3

J'ai déjà trouvé et lu des questions similaires, mais malheureusement, je n'ai pas réussi à trouver une solution. Je veux juste convertir une chaîne en un tableau char avec la taille des lettres dans la chaîne. Exemple:Comment puis-je convertir une chaîne en un tableau Char avec la taille des lettres de la chaîne en C++?

string test = "hello"; 

Char Tableau:

testArr[0]: 'h'; 
testArr[1]: 'e'; 
testArr[2]: 'l'; 
testArr[3]: 'l'; 
testArr[4]: 'o'; 

En Java, il serait très facile, mais en C++, il semble compliqué.

+2

Si votre tableau de caractères est un 'std :: vecteur 'ou similaire, vous pouvez utiliser la surcharge du constructeur qui prend une paire d'itérateurs. Exemple: 'std :: vector testArr (test.begin(), test.end())' – WhiZTiM

+0

Le 'std :: string' contient déjà un tableau' char' de style C. Vous pouvez obtenir un pointeur en utilisant 'test.c_str()'. –

+1

Copie possible de [chaînes de conversion C++ en tableaux char] (https://stackoverflow.com/questions/13343013/c-convert-strings-to-char-arrays) – DMishra

Répondre

0

La chaîne de classe a une fonction membre c_str() qui renvoie une chaîne constante. si simplement:

std::string test = "hello"; 

char* cstrTest = new char[test.length() + 1]; 
strcpy(cstrTest, test.c_str()); 

std::cout << cstrTest << std::endl; 

delete[] cstrTest; 
  • Si vous voulez juste la chaîne de caractères constante sans le modifier (const) simplement:

    const char* cTest = test.c_str(); 
    cout << cTest << endl; 
    
+1

Ah d'accord ça marche. Je vous remercie! – Curbe