Hola buenas queria saber como se hace para comparar un caracter de una cadena con un caracter ascii, os pongo un ejemplo
char cadena[100];
cout<<"Introduce cadena"<<endl;
cin>>cadena;
for(int i=0;i<strlen(cadena);i++)
{
if(cadena[i]=="@")
cout<<"Caracter encontrado"<<endl;
}
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
char cadena[100], caracter='a';
cadena[2]=caracter;
Lo primero,
char sArray[4];
int i = 0;
sArray[0] = 'h';
sArray[1] = 'a';
sArray[2] = 'b';
sArray[3] = 'c';
for(i=0; i<strlen(sArray); i++){
if(sArray[i] == 'a'){
printf( " Esta en la posicion %i\n", i );
}
}
Output:
alex@shellroot:~/Escritorio$ gcc PoC.c
alex@shellroot:~/Escritorio$ ./a.out
Esta en la posicion 1
--
Lo segundo,
char sArray[2];
char sCaracter = 'a';
sArray[0] = 'h';
sArray[1] = sCaracter;
printf( "%c\n", sArray[1] );
Output:
alex@shellroot:~/Escritorio$ gcc PoC.c
alex@shellroot:~/Escritorio$ ./a.out
a
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=='@'