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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Comparación individual de caracteres
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comparación individual de caracteres  (Leído 2,574 veces)
alpha015

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Comparación individual de caracteres
« en: 13 Marzo 2012, 23:04 pm »

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int c[61],i,j,x;
  4. FILE *pass;
  5.  
  6. main()
  7. {
  8. pass=fopen("password.txt", "r");
  9.  
  10. for (i=1; i<=60; i++)
  11. {
  12. fscanf(pass, "%c", &x);
  13. c[i]=x;
  14. }
  15.  
  16. for (i=1; i<=60; i++)
  17. {
  18.       for (j=48; j<=57; j++)
  19.       if (c[i] == j)  printf("%c", j);
  20.  
  21.       for (j='a'; j<='z'; j++)
  22.       if (c[i] == j)  printf("%c", j);
  23.  
  24.       for (j='A'; j<='Z'; j++)
  25.       if (c[i] == j)  printf("%c", j);
  26.  
  27. if (c[i] == 'º')  printf("%c", 'º');
  28.       if (c[i] == 'ª')  printf("%c", 'ª');
  29.       if (c[i] == '!')  printf("%c", '!');
  30. if (c[i] == '|')  printf("%c", '|');
  31. if (c[i] == '"')  printf("%c", '"');
  32. if (c[i] == '@')  printf("%c", '@');
  33. if (c[i] == '·')  printf("%c", '·');
  34. if (c[i] == '#')  printf("%c", '#');
  35. if (c[i] == '$')  printf("%c", '$');
  36. if (c[i] == '%')  printf("%c", '%');
  37. if (c[i] == '&')  printf("%c", '&');
  38. if (c[i] == '/')  printf("%c", '/');
  39. if (c[i] == '(')  printf("%c", '(');
  40. if (c[i] == ')')  printf("%c", ')');
  41. if (c[i] == '=')  printf("%c", '=');
  42. if (c[i] == '?')  printf("%c", '?');
  43. if (c[i] == '¿')  printf("%c", '¿');
  44. if (c[i] == '¡')  printf("%c", '¡');
  45. if (c[i] == '`')  printf("%c", '`');
  46. if (c[i] == '^')  printf("%c", '^');
  47. if (c[i] == '[')  printf("%c", '[');
  48. if (c[i] == '*')  printf("%c", '*');
  49. if (c[i] == '+')  printf("%c", '+');
  50. if (c[i] == ']')  printf("%c", ']');
  51. if (c[i] == '´')  printf("%c", '´');
  52. if (c[i] == '¨')  printf("%c", '¨');
  53. if (c[i] == '{')  printf("%c", '{');
  54. if (c[i] == 'ç')  printf("%c", 'ç');
  55. if (c[i] == 'Ç')  printf("%c", 'Ç');
  56. if (c[i] == '}')  printf("%c", '}');
  57. if (c[i] == '<')  printf("%c", '<');
  58. if (c[i] == '>')  printf("%c", '>');
  59. if (c[i] == ';')  printf("%c", ';');
  60. if (c[i] == ',')  printf("%c", ',');
  61. if (c[i] == '.')  printf("%c", '.');
  62. if (c[i] == ':')  printf("%c", ':');
  63. if (c[i] == '-')  printf("%c", '-');
  64. if (c[i] == '_')  printf("%c", '_');
  65. if (c[i] == ' ')  printf("%c", ' ');
  66.  
  67.     }
  68.   printf("\n\n");
  69.  
  70. system("pause");
  71.       return 0;  
  72. }

Un saludo.


« Última modificación: 14 Marzo 2012, 17:59 pm por Eternal Idol » En línea

Sagrini

Desconectado Desconectado

Mensajes: 107


Ver Perfil WWW
Re: Comparación individual de caracteres
« Respuesta #1 en: 14 Marzo 2012, 17:32 pm »

EL problema es que para comparar carácteres debes usar comillas simples. Te pongo un ejemplo:
Código
  1. if (car =='A') printf ("La letra seleccionada es A.\n");
Por cierto, no uses funciones *scan* cuando puedas evitarlo. Busca algo de fgetchar (), getchar (), fgetc (), etc...

MODF: Borro las dos primeras líneas ya que EI ya ha borrado los mensajes anteriores al mío y ya no tenían significado x
Un saludo. Sagrini


« Última modificación: 14 Marzo 2012, 18:19 pm por Sagrini » En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Comparación individual de caracteres
« Respuesta #2 en: 14 Marzo 2012, 18:03 pm »

Bueno el codigo tiene varios errores por ejemplo estos:
Código:
c=x; 
se hace:
Código:
c[elemento array]=x;

y estos:
Código:
c == j
así:
Código:
c[elemento] == j

y tambien una observacion viendo que haces esto:

Código:
      if (c == '"')  printf("%c", '"');
      if (c == '@')  printf("%c", '@');
      if (c == '·')  printf("%c", '·');
      if (c == '#')  printf("%c", '#');
      if (c == '$')  printf("%c", '$');
      if (c == '%')  printf("%c", '%');
      if (c == '&')  printf("%c", '&');
      if (c == '/')  printf("%c", '/');

la comparacion no es igual me refiero que los operandos no son del mismo tamaño
para ahorrar espacio y rapidez usa un array de tipo BYTE o un unsigned char :)
En línea

alpha015

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: Comparación individual de caracteres
« Respuesta #3 en: 14 Marzo 2012, 22:33 pm »

Gracias por vuestras respuestas. Un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines