Foros del Web » Programación » C/C++ »

Variable de tipo string en c

Estas en el tema de Variable de tipo string en c en el foro de C/C++ en Foros del Web. Hola amigos. Recién estoy comenzando a conocer un poco de este lenguaje y ya me he topado con la primera piedrita. Les cuento que quiero ...
  #1 (permalink)  
Antiguo 13/04/2008, 22:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 307
Antigüedad: 9 años, 1 mes
Puntos: 1
Variable de tipo string en c

Hola amigos. Recién estoy comenzando a conocer un poco de este lenguaje y ya me he topado con la primera piedrita.

Les cuento que quiero declarar una variable de tipo string como en Java o c# para asignarle una cadena de caracteres pero no he podido hacerlo. Al parecer en c puedo declarar una variable de tipo char para lograr esto, pero me he llevado la sorpresa de que si hago esto solo le puedo asignar un caracter, por ejemplo:

char cadena;
cadena = 'H';
cadena = 'Hola María'; //error

Entonces mi gran pregunta, cómo hago para asignar a una variable una cadena de caracteres en lenguaje c?

Espero contar con su valiosa ayuda.
Muchas gracias.
  #2 (permalink)  
Antiguo 14/04/2008, 01:22
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 6 años, 4 meses
Puntos: 24
Re: Variable de tipo string en c

Es facil:
char * cadena = "Hola María";

Pero ojo lo que declaras es un puntero a una zona de memoria ya inicializada. Dependiendo de las opciones de compilación dicha zona de memoria puede no ser modificable.

Lo anterior es lo mejor para cuando son cadenas estáticas, pero si lo que quieres es un buffer en el que ir modificando datos, puedes hacerlo de dos formas, con memoria dinámica o con memoria estática.

Con memoria estática:

char cadena[200] = "Cualquier cosa de menos de 200 caracteres";

Con memoria dinámica:

char * cadena = malloc(200);
strcpy ( cadena, "Cualquier cosa de menos de 200 caracteres" );
...
free( cadena );
__________________
Grupos de Música
Pop Music Stars
  #3 (permalink)  
Antiguo 14/04/2008, 17:42
 
Fecha de Ingreso: marzo-2008
Ubicación: Beijing
Mensajes: 19
Antigüedad: 6 años
Puntos: 0
Re: Variable de tipo string en c

Para aclararlo mejor char variable es solo para un character, ya sea letra o numero, tu elijes, ahora puedes declara un vector de char como te indica aloqui.

Espero aclararte tu duda un poquito mas.
  #4 (permalink)  
Antiguo 15/04/2008, 00:01
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 6 años, 4 meses
Puntos: 24
Re: Variable de tipo string en c

Cita:
Iniciado por madchen Ver Mensaje
Para aclararlo mejor char variable es solo para un character, ya sea letra o numero, tu elijes, ahora puedes declara un vector de char como te indica aloqui.

Espero aclararte tu duda un poquito mas.
En realidad el tipo char no es para números. Puedes poner caracteres que representen dígitos, e incluso algunos números pero solo un subconjunto.,

Ejemplos;
char cadena = 'A'; /* Bien, rellena el valor 65=0x41 */
char cadena = '\t'; /* Bien, rellena el valor 9=0x9 (el tabulador) */
char cadena = '2'; /* Bien, rellena el valor 50=0x32 */
char cadena = 3; /* Bien, rellena el valor 3, vale porque esta en el rango -128 .. +127 */
char cadena = 130; /* Mal, rellena 130%128=2, porque trunca a un byte */
__________________
Grupos de Música
Pop Music Stars
  #5 (permalink)  
Antiguo 06/06/2009, 05:50
 
Fecha de Ingreso: junio-2009
Mensajes: 1
Antigüedad: 4 años, 10 meses
Puntos: 0
Respuesta: Variable de tipo string en c

bueno prueba con esto
// crear un programa en C que:
// lea e imprima un string
#include <stdio.h>

void main()
{
char equipo[50];
printf("Ingrese nombre del equipo de futbol:");
scanf("%s",equipo); // solo lee 1 palabra
printf("Nombre de equipo ingresado es %s\n",equipo);
}
  #6 (permalink)  
Antiguo 06/06/2009, 11:11
Avatar de MeduZaPaT  
Fecha de Ingreso: enero-2009
Ubicación: USA
Mensajes: 106
Antigüedad: 5 años, 2 meses
Puntos: 3
Respuesta: Re: Variable de tipo string en c

Cita:
Iniciado por aloqui Ver Mensaje
En realidad el tipo char no es para números. Puedes poner caracteres que representen dígitos, e incluso algunos números pero solo un subconjunto.,

Ejemplos;
char cadena = 'A'; /* Bien, rellena el valor 65=0x41 */
char cadena = '\t'; /* Bien, rellena el valor 9=0x9 (el tabulador) */
char cadena = '2'; /* Bien, rellena el valor 50=0x32 */
char cadena = 3; /* Bien, rellena el valor 3, vale porque esta en el rango -128 .. +127 */
char cadena = 130; /* Mal, rellena 130%128=2, porque trunca a un byte */
el consepto esta un poco equivocado, el char almacena un numero del 0 al 255, que para el humano tiene que ver con la tabla de caracteres ascii
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 20:22.
SEO by vBSEO 3.3.2