2010-12-04 3 views
1

Je veux une transformation de int en char (ou chaîne) en C++.Comment convertir des entiers en caractères en C++?

+2

Essayez de regarder dans itoa (http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/)? ou strings? – GWW

+2

Je veux une bière. Sérieusement, s'il vous plaît montrer le code que vous avez, et à quoi il devrait ressembler. Vous ne savez pas si vous souhaitez diffuser des types de données ou le formater. – Eiko

Répondre

3

La façon la plus simple de convertir tout type de données de base à char* est avec sprintf:

char mystring[MAX_SIZE]; 
sprintf(mystring, "%d", my_int); 
2
#include <sstream> 

ostringstream intStream; 
int myInt(123456); 

intStream << myInt; 

string myIntString(intStream.str()); 
3

Eh bien, ce n'est pas spécialement complexe:

#include <sstream> 

    std::string cnvt(int x) 
    { 
     std::ostringstream cnvt; 

     cnvt << x; 

     return cnvt.str(); 
    } 

Hope this helps.

+0

Beaucoup mieux que [ma solution] (http://stackoverflow.com/questions/4355315/how-do-i-convert-from-int-to-chars-in/c4355328#4355328), beaucoup plus de C++ - y –

+0

Oui, c'est plus du C++, mais honnêtement, je dois dire que je préfère le vôtre que le mien. :-D – Baltasarq

8

Outre l'utilisation stringstream directement, vous pouvez également utiliser boost::lexical_cast:

std::string x = boost::lexical_cast<std::string>(42); 
+0

Je +1 pour la solution C++ la plus claire qui existe, mais je n'ai plus de voix :). – Kos

+0

+5 pour 'lexical_cast'; +5 pour '42'. – ClosureCowboy

Questions connexes