Как найти символ, который мы хотим от другого текста в программе C? - PullRequest
0 голосов
/ 07 июня 2019

Мне нужно создать программу ac, чтобы найти символ «a» в предложении из другого файла.Я сделал кодирование, но все равно не получил правильный результат.Что не так с моим кодированием?предложение в okeya.txt - kazega hukeba okeyaga moukaru, но когда я компилирую программу, результат «найден в 85»

#include <stdio.h>
#include <stdlib.h>
#define x_size 80 
int main( void ){

char filename[] = "okeya.txt"; FILE *fp;
char input[ x_size ];
char find  = 'a';
char *poin;
poin=filename;
char *p = input;

if( (fp = fopen( filename,"r" ) ) == NULL ){ printf( "?????????????" );
exit( -1 );
}

while( fgets( input , x_size , fp ) != NULL );
fclose(fp);

while(*poin!= '\0'){
    if(*poin == find){
        printf("\n found at %d .\n", poin-input + 1);
    }
    poin ++;
}


return 0;
}

1 Ответ

0 голосов
/ 07 июня 2019

Вы инициализируете poin, чтобы указать на статическую строку filename вместо содержимого файла, который вы читаете. Таким образом, условие (*poin == find) будет искать символ 'a' внутри строки "okeya.txt". Так что вы должны сказать

for(poin=input ;*poin; poin++){
    if(*poin == find){
        printf("\n found at %d .\n", poin-input + 1);
        /* here maybe you want to break as well */
    }
}
...