Ayuda array

Iniciado por alexis33de, 30 Mayo 2011, 15:42 PM

0 Miembros y 1 Visitante están viendo este tema.

alexis33de

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 (cpp) [Seleccionar]
#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
char a[20];
int i=0;
cout<<"coloque la palabra a:"<<endl;
gets(a);

while( i<=strlen(a))
     {
     int ind=0;
     if(a[ind]==a[1+i]){
       cout<<"1"<<endl; }
       else{
       cout<<"0"<<endl; }
       ind++;
      }
   
  system("pause");
  return 0;
}

SpesMod

Puedes reducir tu codigo asi:
Código (cpp) [Seleccionar]
#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
char a[20];
int i=0, j=0, x;
cout<<"coloque la palabra a:"<<endl;
gets(a);
while(a[j]!='\0')
     {
     x=0;
     if(a[j]==a[j+1])
        x++;
     cout<<x;
     j++;
     }
system("pause");
return 0;
}


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

Khronos14

¿Algo como esto?

Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

int main(int argc, char * argv[])
{
char buffer[20];
cout << "Introduce una cadena: ";
cin.get(buffer, 20);

for (int i = 0; i < strlen(buffer) - 1; i++)
{
if (buffer[i] == buffer[i + 1])
cout << "1";
else
cout << "0";
}

return 0;
}


Saludos.

El_Java

Puede resultar más sencillo hacerlo de esta forma:
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main(){
    string a;
    cout << "Coloque la palabra a: " << endl;
    cin >> a;
    for (int x=0; x<sizeof(a); x++){
        if(a[x] == a[x+1]) cout << 1;
        else cout << 0;
    }
    return 0;
}


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

alexis33de

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

El_Java

para ignorar se usa la funcion ignore.
Por ejemplo:
Código (cpp) [Seleccionar]
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 :)