2010-07-11 19 views
38

Pregunta simple (en C++):¿Convierte un solo carácter en una cadena?

Cómo convierto un personaje en una cadena. Entonces, por ejemplo, tengo una cadena str = "abc";

Y quiero extraer la primera letra, pero quiero que sea una cadena en comparación con un carácter.

me trataron

string firstLetter = str[0] + ""; 

y

string firstLetter = & str[0]; 

Ni las obras. Ideas?

+1

Sería bueno saber el lenguaje de programación que está utilizando. – Rab

Respuesta

54

De la parte superior de mi cabeza, si está usando STL a continuación, haga lo siguiente:

string firstLetter(1,str[0]); 
+0

Lo usé y funciona, ¡gracias! – MLP

+0

Tenga en cuenta que 'std :: string' no es de esa parte de la biblioteca estándar derivada de STL. – sbi

+1

Agregando este comentario para aclarar lo que indica la sintaxis. Esto básicamente dice, _ ** "Quiero una' cadena' llamada 'firstLetter' que toma el carácter '1' a partir del primer elemento (' [0] ') de' str'. "** _ http: // en .cppreference.com/w/cpp/string/basic_string/basic_string –

18

Puede utilizar el std::string(size_t , char) constructor:

string firstletter(1, str[0]); 

o puede utilizar string::substr():

string firstletter2(str.substr(0, 1)); 
+2

+1: la forma más simple y mejor – rubenvb

2

string firstletter (str.begin(), str.begin() + 1);

5

1) Utilizando std::stringstream

std::string str="abc",r; 
    std::stringstream s; 
    s<<str[0]; 
    s>>r; 
    std::cout<<r; 

2) Utilizando string (size_t n, char c);constructor

std::string str="abc"; 
    string r(1, str[0]); 

3) Uso de substr()

string r(str.substr(0, 1)); 
+0

Además, esto funcionará también: 'string r (& str [0], 1);' o 'string r (str.c_str(), 1);' –

3

Uso string::substr.

En el siguiente ejemplo, f será la cadena que contiene 1 caracteres después del desplazamiento 0 en foo (en otras palabras, el primer carácter).

string foo = "foo"; 
string f = foo.substr(0, 1); 

cout << foo << endl; // "foo" 
cout << f << endl; // "f" 
3
char characterVariable = 'z'; 
string cToS(1, characterVariable); 

//cToS is now a string with the value of "z" 
2
string s; 
char a='c'; 
s+=a; //now s is "c" 

o

char a='c'; 
string s(a); //now s is "c" 
+0

what está mal con este código? –

+0

Creo que mi solución es correcta, no sé por qué obtuve un -1. –

+0

Me funcionó, por lo tanto, me pregunto lo mismo. –

Cuestiones relacionadas