[ Foro de C ]
Buenas, estoy teniendo problemas para resolver un problema que tengo:
while(fscanf(f, "%s\n", cadena)!=EOF){
int tamano=sizeof(cadena);
int mitad=tamano/2;
for(int i=mitad; i<=(tamano-1); i++){
for(int j=0; j<=(mitad-1);j++){
if(cadena[i]==cadena[j]){
letra=cadena[i];
int puntuacionindividual=0;
if(letra=="a"){puntuacionindividual=1;}
if(letra=="b"){puntuacionindividual=2;}
...
No puede igualar letra con la letra a, me da error. Lo he intentado con if(strcmp(letra, "a")==0) pero tampoco ha dado resultado. ¿Alguno sabe la respuesta? Gracias de antemano.
Hola matog
el problema que tienes es que las comillas dobles denotan una cadena y las simples son para caracteres individuales, por lo que `if(letra=="a")` deberías ponerlo como `if(letra=='a')`, con comillas simples
no se que pretendes hacer en el programa pero:
- si quieres leer línea por línea deberías usar algo como
while(fscanf(fichero, "%[^\n] ", contendor) != EOF)
- `i<=(tamano-1)` es igual que `i<tamano` y lo mismo para `j<=(mitad-1)`
- si quieres puntuar las minúsculas podrías hacer algo como
if(letra >= 'a' && letra <= 'z')
{
puntuacionindividual = letra - 'a' + 1;
}
suerte ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)