Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] ¿Cómo agregar valores a una variable tipo char?

Estas en el tema de ¿Cómo agregar valores a una variable tipo char? en el foro de C/C++ en Foros del Web. Hola compas, tengo una duda, ¿como puedo agregar valores a una variable tipo char? He probado varias formas, pero no funcionan, por ejemplo probé esta: ...
  #1 (permalink)  
Antiguo 23/04/2014, 16:58
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
¿Cómo agregar valores a una variable tipo char?

Hola compas, tengo una duda, ¿como puedo agregar valores a una variable tipo char?

He probado varias formas, pero no funcionan, por ejemplo probé esta:

Código C++:
Ver original
  1. char Autos[256] = "Audi BMW Ford Chevrolet Fiat";
  2. cout << Autos << endl;
  3. Autos[256] = "Palabra1 Palabra2 Palabra3 etc";
  4. cout << Autos << endl;

pero me da este error:

C:\Users\Daniel\Desktop\C++\Pruebas.cpp|55|error: invalid conversion from 'const char*' to 'char' [-fpermissive]|

Lo que yo necesito es poder agregar valores a char, como en el ejemplo que puse, que primero me muestro las marcas de los autos y luego "Palabra1 Palabra2 Palabra3 etc"

¿Como puedo hacer eso?

Desde ya gracias!! :arriba
  #2 (permalink)  
Antiguo 23/04/2014, 18:19
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: ¿Cómo agregar valores a una variable tipo char?

strcpy( Autos, "a b c d" );

El string pasado como 2do parametro tiene que ser tan largo como "Autos" ha sido definida -1 (para dejar espacio para la marca de fin de string de C)
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 23/04/2014, 19:17
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo agregar valores a una variable tipo char?

Me sirvio, muchas gracias.
  #4 (permalink)  
Antiguo 23/04/2014, 22:59
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: ¿Cómo agregar valores a una variable tipo char?

Por que no usas string que es mejor para eso?

string Autos = "Audi BMW Ford Chevrolet Fiat";
cout << Autos << endl;
Autos = "Palabra1 Palabra2 Palabra3 etc";
cout << Autos << endl;

luego puedes acceder a cualquier letra igual que una tabla:
cout << Autos[0]<< Autos[1]<< Autos[2]<< Autos[3]<< Autos[4];
  #5 (permalink)  
Antiguo 23/04/2014, 23:29
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo agregar valores a una variable tipo char?

Porque si o si necesito que sea en char, el programa me lo exige!!! xDDD
  #6 (permalink)  
Antiguo 23/04/2014, 23:36
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: ¿Cómo agregar valores a una variable tipo char?

pero un string es una cadena de chars :/
  #7 (permalink)  
Antiguo 24/04/2014, 00:06
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo agregar valores a una variable tipo char?

Así es, tienes razón, pero el tipo es diferente y el programa no me permite hacerlo mediante string, he probado y me da error, siempre quice que sea en string, pero tube que hacerlo en char.

Código C++:
Ver original
  1. string Prueba = "Palabra1 Palabra2 Palabra3 Palabra4";
  2.     nret = send(iSocket, Prueba, 256, 0);

C:\Users\Daniel\Desktop\C++\Bot Escaner de Puertos Proxys.cpp|56|error: cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '2' to 'int send(SOCKET, const char*, int, int)'|

Pues no me deja amigo

He probado con otros métodos, además del socket y también me falla por la conversión.
  #8 (permalink)  
Antiguo 24/04/2014, 00:24
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: ¿Cómo agregar valores a una variable tipo char?

pues no veo problema alguno XDD
Código C++:
Ver original
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. using namespace std;
  5.  
  6. int main (){
  7.     system("MODE CON cols=100 lines=50");
  8.    
  9.  
  10.     string s = "Mi audi tiene turbolol";  //esto es un string que no te gusta me parece XDD
  11.     const char * cs = s.c_str ();         //Si aun no te has orvidad una tabla es un puntero que apunta a la primera posición de un string =D
  12.     cout << cs << endl; // ahi tienes tu tabla de chars y esta es la prueba ^^
  13.    
  14.     cout << cs[5]; //para que veas que es una tabla imprimimos como una tabla XD
  15.    
  16.     cin.ignore();
  17.     return 0;
  18. }
un array es un puntero que apunta la primera posición de la cadena en este caso la M s[0] == 'M'.
si creo un puntero a esa primera casilla pues tengo la dichosa tabla jeje
Te puedes pegar to el rato trabajando con strings y usar los punteros cuando te de la gana XDD.
Para hacer el contrario es mas fácil aun es solo hacer un cast

char tabla[]="mama mis garbanzos";

cout << string( tabla );


un array es el puntero que apunta a la posicion 0 del indice y dentro podemos colocar el string dentro o otros datos como numeros, nunca te olvides si aprendes las conversiones no te partes la cabeza haciendo cálculos tontos XDD

Código C++:
Ver original
  1. #include <iostream>
  2. #include <windows.h>
  3. using namespace std;
  4.  
  5. int main (){
  6.     system("MODE CON cols=100 lines=50");    
  7.  
  8.     string s = "Mi audi tiene turbolol";
  9.     const char * cs = s.c_str ();
  10.     cout << cs << endl;    
  11.     cout << cs[5] << endl;
  12.     cout << string ( cs);
  13.    
  14.     cin.ignore();
  15.     return 0;
  16. }

Última edición por vangodp; 24/04/2014 a las 00:39
  #9 (permalink)  
Antiguo 24/04/2014, 00:40
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo agregar valores a una variable tipo char?

Al contrario amigo, me gustan más los string que los char.
Muy bueno tu código!! Lo probé y funcionó, sabés muchísimo de C++, espero yo saber mucho algún día!!!

Gracias amigo!!

PD: Por favor amigo me podrias ayudar con un problema que tengo en otro Tema sobre mi bot? Gracias!!
  #10 (permalink)  
Antiguo 24/04/2014, 00:45
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: ¿Cómo agregar valores a una variable tipo char?

no se tanto sabes, ayudar la gente con lo poco que se me hace que aprenda mas cosillas :D
fiate que puedes hacer mas XD
Código C++:
Ver original
  1. #include <iostream>
  2. #include <windows.h>
  3. using namespace std;
  4.  
  5. int main (){
  6.     system("MODE CON cols=100 lines=50");    
  7.  
  8.     string s = "Mi audi tiene turbolol";
  9.     const char * cs = s.c_str ();
  10.     cout << cs << endl;    
  11.     cout << cs[5] << endl;
  12.     cout << string ( cs) << endl;
  13.    
  14.     s = s + ", pero no me gustan los turbos XDD";
  15.     cout << s << endl;
  16.     cout << "lonjitud incluyendo espacios: " << s.size();
  17.    
  18.     cin.ignore();
  19.     return 0;
  20. }

comparar strings es mas facil que comparar tablas
a los strings les comparas asi:


string a;
string b;

if (a == b)
correcto

else
falso

Para comparar arrays dale vueltas con for por todas las casillas XDDDD
un rollazo XD

otra cosa que me molan de los strings es que no necesitas preocuparte por el espacio, una razón de peso para usarse.

Última edición por vangodp; 24/04/2014 a las 00:50
  #11 (permalink)  
Antiguo 24/04/2014, 01:08
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo agregar valores a una variable tipo char?

Cláro campeón, lo tendré en cuenta, todo me servirá tarde o temprano.
Una lástima que un lenguaje como C++ no tenga .split() pero bueno buscando ayer encontré una función que hace justamente eso.
Pero lo que no se es como separar por espacios una cadena, por que por ejemplo:

string Paises = "Argentina España Brasil Mexico Bolivia";

a mi me gustaría poder hacer esto, es más, me encantaría poder hacer esto:

Código C++:
Ver original
  1. cout << Paises[0] << endl; // Devuelve Argentina
  2. cout << Paises[1] << endl; // Devuelve España
  3. cout << Paises[2] << endl; // Devuelve Brasil
  4. cout << Paises[3] << endl; // Devuelve Mexico
  5. cout << Paises[4] << endl; // Devuelve Bolivia

exactamente lo mismo que las listas de Python, pero no se como hacerlo, estoy pensando y crearé una función que me retorne eso, algo como esto:

Código C++:
Ver original
  1. cout << split(0, Paises) << endl; // Devolverá Argentina
  2. cout << split(2, Paises) << endl; // Devolverá Brasil
  3. cout << split(4, Paises) << endl; // Devolverá Bolivia
  4. cout << split(1, Paises) << endl; // Devolverá España
  5. cout << split(3, Paises) << endl; // Devolverá Mexico

Eso es lo que busco también, poder hacer eso!!
  #12 (permalink)  
Antiguo 24/04/2014, 01:35
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: ¿Cómo agregar valores a una variable tipo char?

no se sobre esa función parece interesante.
Pues hazla tu ^^
Es interesante ese tipo de propuestas.
Venga hagamos ambos a nuestros modos, y ya cambiamos ideas para hacer una mejorada =D
¿Que te parece? =DD
  #13 (permalink)  
Antiguo 24/04/2014, 02:52
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo agregar valores a una variable tipo char?

Por mi parte tenés el okey! No hay drama amigo, eso nos ayudará a los 2, es muy bueno enseñarse y aprender mutuamente!!!


Ahora voy a publicar en el Foro de Python algo que muchísimas gente ha pedido respuesta a eso y hoy y ahora mismo se la voy a dar, he publicado ese método en otro foro, ahora lo haré en este.
Ese método es bastante pedido muchos foros y páginas y jamás he encontrado respuesta alguna, osea no la que el usuario hubiese querido.
Lo que los usuarios quieren muchas veces es saber que contiene una cierta línea de un archivo de texto sin usar ningún bucle, ni for, ni while, también he leído que quieren saber como hacer para contar todas las líneas que tenga un archivo de texto sin utilizar un bucle, yo he hecho posible esto, esa es una de mis ideas que tengo.
He hecho realmente cosas bastante buenas y que casi en ningún lado las vas a encontrar.
No soy un genio, utilizo métodos nada más.


Etiquetas: funcion, tipo, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:21.