elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con array de strings
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con array de strings  (Leído 1,692 veces)
JaimeGc05

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema con array de strings
« en: 20 Enero 2019, 18:45 pm »

Como tendría que hacer para ingresar varios strings que recoge el programa con un bucle??
He probado con esto pero no me funciona:

Código
  1. int main() {
  2. char *array_palabras[10];
  3. char mas_palabras = 'S', palabra[15];
  4. int i = 0;
  5.  
  6. while ((i <= 10) && (mas_palabras == 'S')) {
  7. printf("Introducir palabra:\n");
  8. gets(palabra);
  9. array_palabras[i] = palabra;
  10. printf("Quieres mas (S/N)?\n");
  11. scanf("%c", &mas_palabras);
  12. i++;
  13. }
  14.  
  15. return 0;
  16. }

Gracias :)


« Última modificación: 20 Enero 2019, 19:17 pm por JaimeGc05 » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Problema con array de strings
« Respuesta #1 en: 20 Enero 2019, 18:50 pm »

Pon el código entre etiquetas de código GeSHi. Dando a modificar el mensaje puedes elegirlas encima del cuadro de texto.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Problema con array de strings
« Respuesta #2 en: 20 Enero 2019, 19:47 pm »

Bueno a ver, hay varias cosillas para corregir:
- Lo que has creado es un array de punteros. Si lo haces de esa manera, te faltaría reservar memoria dinámica para cada palabra. Lo suyo si lo haces con memoria estática sería crear una matriz:
Código
  1. const int MAX_PALABRAS = 10;
  2. const int MAX_LONGITUD = 20;
  3. char conjunto_palabras[MAX_PALABRAS][MAX_LONGITUD];
  4. char palabra_actual[MAX_LONGITUD];

- Para recoger una palabra de la entrada estándar te recomiendo usar <fgets()> en lugar de <gets()> es una función más segura y recomendada:
Código
  1. // siguiendo el codigo anterior
  2. printf("Introduce palabra: ");
  3. fgets(palabra_actual, MAX_LONGITUD, stdin);

- Para guardar cada palabra en la matriz usa la función <strcpy()> o su variante <strncpy()>:
Código
  1. //siguiendo el ejemplo anterior
  2. strcpy(conjunto_palabras[i], palabra_actual);

- Para el filtro de entrada que has implementado con el <while()>, es el típico uso que se le da al <do while()>:
Código
  1. do{
  2.    // pedir palabra
  3.    // guardar palabra
  4.    // preguntar si pedir mas palabras
  5.    scanf("%c", &repetir);
  6.    getchar();
  7. }  while(i < MAX_PALABRAS && (repetir == 's' || repetir == 'S');

Espero que te sirva. Suerte :-X
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
JaimeGc05

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema con array de strings
« Respuesta #3 en: 20 Enero 2019, 20:44 pm »

Gracias   ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Reordernar array de strings aleatoriamente (Ayuda)
Programación Visual Basic
katanaia 2 1,867 Último mensaje 25 Noviembre 2008, 19:27 pm
por cobein
Separación de caracteres en Strings y guardado en array
Java
Debci 4 6,064 Último mensaje 18 Septiembre 2009, 06:39 am
por Skeletron
FindWindow con array de strings
Programación C/C++
while 4 2,623 Último mensaje 9 Noviembre 2010, 21:56 pm
por while
(Ayuda) Array de strings.
Programación C/C++
S++ 4 2,821 Último mensaje 11 Junio 2015, 03:59 am
por rir3760
[C] Tratando de crear array de strings « 1 2 »
Programación C/C++
huchoko 14 4,107 Último mensaje 9 Junio 2019, 02:30 am
por RayR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines