Comparar dos Char por medio de un If

Iniciado por Hack-11, 20 Octubre 2011, 21:51 PM

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

Hack-11

Buenas  ;D

he intentado comparar dos arrays tipo char con un if pero nose como hacerlo. Llevo esto de codigo:

#include <iostream>
#include <cmath>
#include <cstdlib>

using namespace std;

int main()
{
    char usuario [10];
    char pass [10];
    cout << "Usuario:";
    cin >> usuario;
    cout << "Pass:";
    cin >> pass;

  if (usuario=="admin" and pass=="admin" ) {

      cout << "Bienvenido." << endl;

  }

  else {

      cout << "Su informacion no es correcta" << endl;

  }




    return 0;
}


El problemas esque escriba lo que escriba se ejecuta el else

BlackZeroX

usa:

strcmp(usuario, "usuario")

Dulces Lunas1¡.
The Dark Shadow is my passion.

Hack-11

Lo tengo asi pero el resultado es el mismo, siempre me ejecuta el else.

#include <iostream>
#include <cmath>
#include <cstdlib>
#include <stdio.h>
#include <string.h>

using namespace std;

int main()
{
    char usuario [10];
    char pass [10];
    cout << "Usuario:";
    cin >> usuario;
    cout << "Pass:";
    cin >> pass;

  if (strcmp(usuario, "admin")) {

      cout << "Bienvenido al Cajero Automatico." << endl;

  }

  else {

      cout << "Su informacion no es correcta" << endl;

  }




    return 0;
}

El_Java

Normal, si te hubieras molestado en leer que hace la funcion strcmp() sabrias que si las dos funciones son iguales devuelve un 0, y sin son diferentes un nº < 0 ó > 0 según cual de los dos parametros sea el mayor de los dos.

dewolo

es cierto, tu pregunta hace referencia a dos "chares" pero dos chares se pueden comparar directamente dentro del if,

Citar
char a='a';
char b='b';

if(a=='a')

ahora si lo que tenes es un vector de char, necesitas una funcion de cadena, como strcmp o strcmpi


s00rk

Ya te dijeron como resolverlo

strcmp(usuario, "usuario")

Esta funcion regresa un numero cuando es 0, significa que son iguales y diferentes regresa un numero diferente eso depende como ya te dijeron sobre la cantidad de caracteres de los parametros enviados.

if(strcmp(usuario, "usuario") == 0)