Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: alexis33de en 30 Mayo 2011, 15:42 pm



Título: Ayuda array
Publicado por: alexis33de en 30 Mayo 2011, 15:42 pm
Hola veran lo que quiero hacer es comparar los caracteres de un mismo array, por Ejm: tengo una palabra "hholla", y quiero que compare las letras que tienen al lado, si son iguales que escriba un 1 y si no son que escriba un 0. En la palabra que puse me debería escribir un "10010" ya que compara la posición i con la posicion i+1 , esto es lo que tengo hasta ahora
Código
  1. #include <iostream.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7. int main()
  8. {
  9. char a[20];
  10. int i=0;
  11. cout<<"coloque la palabra a:"<<endl;
  12. gets(a);
  13.  
  14. while( i<=strlen(a))
  15.     {
  16.     int ind=0;
  17.     if(a[ind]==a[1+i]){
  18.       cout<<"1"<<endl; }
  19.       else{
  20.       cout<<"0"<<endl; }
  21.       ind++;
  22.      }
  23.  
  24.  system("pause");
  25.  return 0;
  26. }


Título: Re: Ayuda array
Publicado por: SpesMod en 30 Mayo 2011, 16:18 pm
Puedes reducir tu codigo asi:
Código
  1. #include <iostream.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. int main()
  7. {
  8. char a[20];
  9. int i=0, j=0, x;
  10. cout<<"coloque la palabra a:"<<endl;
  11. gets(a);
  12. while(a[j]!='\0')
  13.     {
  14.     x=0;
  15.     if(a[j]==a[j+1])
  16.        x++;
  17.     cout<<x;
  18.     j++;
  19.     }
  20. system("pause");
  21. return 0;
  22. }

No es la mejor forma que hay, pero es lo primero que se me ocurrio.


Título: Re: Ayuda array
Publicado por: Khronos14 en 30 Mayo 2011, 16:24 pm
¿Algo como esto?

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(int argc, char * argv[])
  6. {
  7. char buffer[20];
  8. cout << "Introduce una cadena: ";
  9. cin.get(buffer, 20);
  10.  
  11. for (int i = 0; i < strlen(buffer) - 1; i++)
  12. {
  13. if (buffer[i] == buffer[i + 1])
  14. cout << "1";
  15. else
  16. cout << "0";
  17. }
  18.  
  19. return 0;
  20. }
  21.  

Saludos.


Título: Re: Ayuda array
Publicado por: El_Java en 30 Mayo 2011, 16:27 pm
Puede resultar más sencillo hacerlo de esta forma:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.    string a;
  6.    cout << "Coloque la palabra a: " << endl;
  7.    cin >> a;
  8.    for (int x=0; x<sizeof(a); x++){
  9.        if(a[x] == a[x+1]) cout << 1;
  10.        else cout << 0;
  11.    }
  12.    return 0;
  13. }
  14.  

Si necesitais alguna aclaracion decidmelo. (Uso string para no tener preocuparme por el tamaño del array).


Título: Re: Ayuda array
Publicado por: alexis33de en 30 Mayo 2011, 16:56 pm
Vale muchas gracias a todos por ayudarme ahora ya tengo mas claro, la comparación de arrays, solo tengo una pequeña duda mas, vi que tmb funciona con números (que ya no es lo que yo quería ,pero me entro la duda XD), y me puse a ver si aceptaba números con decimales, probé usando el gets para captural el numero mas el punto("."), pero vi que el numero lo compara con el punto, hay otra forma de que solo compare o bien letras o bien números, pero omita el "punto"?

EJM: pongo aa.a y me devuelve un 100 xq esta comparando con el punto
SALUDOS


Título: Re: Ayuda array
Publicado por: El_Java en 30 Mayo 2011, 17:03 pm
para ignorar se usa la funcion ignore.
Por ejemplo:
Código
  1. cin.ignore(50,'.');
Esto se pone antes de hacer el cin >> a y lo que consigues es que ignore, en este caso, 50 puntos.
Asi creo que si saldra como tu quieres.
Al poner aa.a te leera aaa por lo que si que te va a dar 111 :)