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

trabajar con Strings dinámicos

Estas en el tema de trabajar con Strings dinámicos en el foro de C/C++ en Foros del Web. Hola maestros... la verdad de las cosas es que necesito trabajar con strings dinámicos y no se como hacerlo, en un principio pense en algo ...
  #1 (permalink)  
Antiguo 10/09/2006, 15:28
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
trabajar con Strings dinámicos

Hola maestros... la verdad de las cosas es que necesito trabajar con strings dinámicos y no se como hacerlo, en un principio pense en algo asi

typedef struct Auto {
char *marca; //Marca del auto
struct Auto *next;
}Auto;

struct Auto *NuevoAuto;

char mar[40];
NuevoAuto->marca = (char *)malloc(sizeof(char)*strlen(mar));
strcpy(NuevoAuto->marca,mar);

Pero el tamaño 40 que le di es arbitrario no es fijo, vale decir que pueden ser bien 5 caracteres o 60... como puedo hacer que el tamaño de la varable mar sea variable???

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #2 (permalink)  
Antiguo 10/09/2006, 16:45
 
Fecha de Ingreso: julio-2006
Mensajes: 47
Antigüedad: 17 años, 9 meses
Puntos: 0
Epale, yo ando de nuevo en esto, pero no te sirve colocar en la definición del tamaño de mar una variable que pidas de entrada? o ese valor es en función de una palabra que ingresas?.

si estas trabajando con visual c++ 2005 en .net puro.

no entiendo que es lo que tienes qe hacer?.... es para almacenar nombres de marcas de carros?.

Si es eso manejalo como un String^ y ya... ya qe dentro del nombre que ingreses puedes acceder a los caracteres usando la funcion index, como un arreglo cualquiera. Vale tambien decir qe si lo deseas puedes crear un arreglo de arreglos de String.

en cualquier ciclo que uses puedes sobreescribir el string qe quieras... si es eso lo qe te entendi como string dinamico.....

estas usando formularios?.

hasta luego.
  #3 (permalink)  
Antiguo 10/09/2006, 17:27
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
hola estimado SombraK, la verdad de las cosas es que como me dices seria valido pero tendria que pedirle al usuario que ingresara el largo maximo para la marca y modelo del auto pero como esoty trabajando con listas enlazadas me urje el tema de ahorro de memoria por eso quiero usar malloc para que se use solo la memoria necesaria y es por eso que tengo la duda de como hacer algo asi:

char *nombre;
scanf("%s",nombre);


pero asi directamente no se puede por eso estoy usando una variable auxiliar que tiene un tamaño determinado, lo que quiero es saber si se puede hacer eso de una forma directa y en ASCI C.... Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #4 (permalink)  
Antiguo 10/09/2006, 19:38
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Vale pues lo que usabas esta perfecto.

Solo inicializa el array mar a 0(null). El strlen te dara el numero de caracteres no, tamaño del array.

Con lo que hiciste ya lo tienes al minimo de memoria.

Saludos
  #5 (permalink)  
Antiguo 10/09/2006, 19:53
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
Puntos: 16
ok muchisimas gracias Instru... saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
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 05:34.