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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


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

Desconectado Desconectado

Mensajes: 31


cout << "Text here" << endl;


Ver Perfil
Aryuda con arrays con strings
« en: 10 Enero 2019, 22:13 pm »

Hola buenas este es un ejercicio de una pagina...
Ya me he pasado rato intentando ver como funciona esto pero no me salgo.
Lo que pide es que primero entres el numero de palabras que entraras en el programa, y despues de escribir cada palabra te escribe en pantalla los caracteres de las palabras que esten en la posicion de los numeros pares del array, y los de los numeros impares separados.
Pues este es el codigo, me pone error donde fgets(s), gracias!
Código:
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int t,n=0;
    vector<char>s;
    cin>>t;
    for(int i=0;i<t;i++){
        fgets(s);
        for(int j=sizeof(s)/sizeof(*s);n<j;n++){
            if(s[n]%2==0){
                cout<<s[n];
            }
        }
        n=0;
        cout<<" ";
        for(int j=sizeof(s)/sizeof(*s);n<j;n++){
            if(s[n]%2!=0){
                cout<<s[n];
            }
        }
    }
   
    return 0;
}


En línea

Código:
Programalo... sin miedo...
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Aryuda con arrays con strings
« Respuesta #1 en: 10 Enero 2019, 22:21 pm »

Los vectores de la stl no se usan así. Mírate en cualquier sitio cómo funciona un vector y cómo funciona la función <fgets()>. Tienes que crear una variable auxiliar y después meterla en el vector, a grandes rasgos...

PD: Creo que estás interpretando mal el ejercicio, un array de palabras es un array de <string>, no de <char>. Has creado un vector de caracteres, no se palabras.

Aparte de eso, aunque el <for> se puede usar como lo estás usando en ese código, no es muy correcto. De todos modos el error más grave es el tipo del vector, miratelo a ver. Suerte :-X


En línea

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


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Aryuda con arrays con strings
« Respuesta #2 en: 11 Enero 2019, 05:50 am »

Código
  1. int main()
  2. {
  3. char palabra[]="salchicha", auxiliar[32];
  4. int i, j=0;
  5. for(i=0;i<strlen(palabra);i++){
  6. if(i%2==0)
  7. cout<<palabra[i];
  8. else{
  9. auxiliar[j]=palabra[i];
  10. j++;
  11. }
  12. }
  13. auxiliar[j]='\0';
  14. cout<<" "<<auxiliar<<endl;
  15. system("pause");
  16. }
« Última modificación: 11 Enero 2019, 05:53 am por Beginner Web » En línea

7w7
Mozzard

Desconectado Desconectado

Mensajes: 31


cout << "Text here" << endl;


Ver Perfil
Re: Aryuda con arrays con strings
« Respuesta #3 en: 14 Enero 2019, 20:02 pm »

Código
  1. int main()
  2. {
  3. char palabra[]="salchicha", auxiliar[32];
  4. int i, j=0;
  5. for(i=0;i<strlen(palabra);i++){
  6. if(i%2==0)
  7. cout<<palabra[i];
  8. else{
  9. auxiliar[j]=palabra[i];
  10. j++;
  11. }
  12. }
  13. auxiliar[j]='\0';
  14. cout<<" "<<auxiliar<<endl;
  15. system("pause");
  16. }
Puedes explicar estas lineas pls? Gracias!
Código:
auxiliar[j]='\0';
cout<<" "<<auxiliar<<endl;
system("pause");
En línea

Código:
Programalo... sin miedo...
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Aryuda con arrays con strings
« Respuesta #4 en: 14 Enero 2019, 20:13 pm »

Una cadena de caracteres de tipo C, es decir, una variable char*, acaba cuando encuentra el caracter '\0'. Por ejemplo:
Código
  1. char *palabra = "hola"; // internamente se ha guardado hola\0
Si creas una cadena ingresando caracteres como en ese bucle, tienes que ingresar al final el caracter de final de cadena '\0'. Los métodos de copia <strcpy()> <strncpy()> y de entrada <gets()> <fgets()> etc ya hacen ellos eso y no tienes que preocuparte de ello. Sólo tienes que hacerlo si ingresas los caracteres "manualmente".

La siguiente línea es simplemente para mostrar la variable por pantalla. Y la última línea es para hacer una pausa y que no se cierre la pantalla del terminal cuando ejecutas el programa. El <system("pause")> es una mala práctica que se recomienda sustituir por <getchar()> en C (incluido en <stdio.h>) y <cin.get()> en C++ (incluido en <iostream>).
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Lista de strings
Programación Visual Basic
Kizar 6 2,627 Último mensaje 13 Febrero 2006, 17:57 pm
por NYlOn
manejo de strings
Programación Visual Basic
elrecar 6 2,509 Último mensaje 16 Octubre 2007, 20:28 pm
por elrecar
Duda con arrays dentro de arrays « 1 2 »
PHP
Servia 11 6,799 Último mensaje 10 Marzo 2011, 09:04 am
por Servia
Strings en C++
Programación C/C++
Fixxed 1 1,689 Último mensaje 11 Agosto 2015, 22:20 pm
por ivancea96
Funcion RecomendarButacas Ayuda!! (Recorrer arrays de arrays)
Java
elenfatico 2 2,679 Último mensaje 7 Abril 2016, 00:44 am
por 50ShadesOfKenyi
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines