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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Comparar cadena con un caracter ascii
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comparar cadena con un caracter ascii  (Leído 10,691 veces)
d00ze13

Desconectado Desconectado

Mensajes: 78


Ver Perfil
Comparar cadena con un caracter ascii
« en: 9 Marzo 2011, 00:12 am »

Hola buenas queria saber como se hace para comparar un caracter de una cadena con un caracter ascii, os pongo un ejemplo
Código
  1. char cadena[100];
  2. cout<<"Introduce cadena"<<endl;
  3. cin>>cadena;
  4.  
  5.    for(int i=0;i<strlen(cadena);i++)
  6.    {
  7.        if(cadena[i]=="@")
  8.            cout<<"Caracter encontrado"<<endl;
  9.    }
  10.  

y tambien queria saber si se puede meter en una posicion de una cadena un caracter, ya que he probado y me da error, pongo otro ejemplo
Código
  1. char cadena[100], caracter='a';
  2.  
  3.    cadena[2]=caracter;
  4.  


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.721


$M


Ver Perfil WWW
Re: Comparar cadena con un caracter ascii
« Respuesta #1 en: 9 Marzo 2011, 00:27 am »

Lo primero,
Código
  1.  char sArray[4];
  2.  int i = 0;
  3.  
  4.  sArray[0] = 'h';
  5.  sArray[1] = 'a';
  6.  sArray[2] = 'b';
  7.  sArray[3] = 'c';
  8.  
  9.  for(i=0; i<strlen(sArray); i++){
  10.    if(sArray[i] == 'a'){
  11.      printf( " Esta en la posicion %i\n", i );
  12.    }
  13.  }
Output:
Código
  1. alex@shellroot:~/Escritorio$ gcc PoC.c
  2. alex@shellroot:~/Escritorio$ ./a.out
  3. Esta en la posicion 1
  4.  

--

Lo segundo,
Código
  1.  char sArray[2];
  2.  char sCaracter = 'a';
  3.  
  4.  sArray[0] = 'h';
  5.  sArray[1] = sCaracter;
  6.  
  7.  printf( "%c\n", sArray[1] );

Output:
Código
  1. alex@shellroot:~/Escritorio$ gcc PoC.c
  2. alex@shellroot:~/Escritorio$ ./a.out
  3. a


« Última modificación: 9 Marzo 2011, 00:34 am por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Comparar cadena con un caracter ascii
« Respuesta #2 en: 9 Marzo 2011, 10:30 am »

En C y C++, las comillas simples ' ' denotan un caracter, mientras que las dobles " " denotan una cadena.

No es lo mismo, comparar en tu código

cadena=="@" que en realidad, lo estás comparando con la siguiente cadena : "@\0"

que

cadena=='@'
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