C de Kelime arama

Başlatan denden, 15 Haziran 2014 - 17:28:29

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

denden

Merhaba, Nereye tam olarak yazacagimi bulamadim. Oyüzden buraya yaziyorum.

Bu Programm bir txt. okuyup kelime bulmasi gerekiyor. Mesela m?a yazdimmi, Merhaba kelimesinin gelmesi gerekiyor. Ama neyazikki bütün m ile baslayan kelimeler gösteriliyor. Hatanin nerede oldugunu bulamadim. Eger yardimci olabilirseniz cok sevinirim.




#include <stdio.h>
#define MAXLETTER S 120
 
 
 
 
int main() {
 
 
char suchwort[16];
char dateiname[16];
int i=0;
int searchQuestMark = 0;
int searchStar= 0;
char row[MAXLETTERS];
int  a;
 

 
printf("'.txt' lütfen: ");
scanf("%s", &dateiname);
 
printf("\nAradiginiz kelimeyi giriniz: ");
scanf("%s", &suchwort);
 
while(suchwort[i]!='\0'){
 
    if(suchwort[i]=='*'){
        searchStar++;}
        else{if(suchwort[i]=='?'){
            searchQuestMark++;}
        }
            i++;
        }
if(searchQuestMark==1){
    searchStartAndEnd(&suchwort, &row, &dateiname);
    }
 
 
 
 

 

 
 
}
 
 
void searchStartAndEnd(char *suchwort, char* row, char *dn){
 
    FILE *fp;
    fp=fopen(dn, "r");
    int j = 0;
while(fgets(row, MAXLETTERS, fp)!=NULL){
            int i = 0;
            int k = 0;
            int tmp = 0;
            j++;
            int extraTest = 0;
 
 
        while(*(row+i)!='\n'&&*(row+i)!='\0'){
 
 
 
            if(*(row+i)==*(suchwort+k)){
               tmp=i;
                if(*(row+(i-1))==' '||i==0){
 
                i++;
                k++;
                    while(*(suchwort+k)!='?' && (*(row+i)!='\n' || *(row+i)!='\0')){
 
                        if(*(row+i)==*(suchwort+k)){
                            i++;
                            k++;
                        }else{
                        i++;
                        k=0;
                        break;
 
                        }
                    }
                    if(*(suchwort+k)=='?'){
                        k++;
 
                        while(*(row+i)!=*(suchwort+k)&&(*(row+i)!='\n' || *(row+i)!='\0' || *(row+i)!=' ' || *(row+i)!='.' || *(row+i)!=',' || *(row+i)!='?' || *(row+i)!='!')){
                            if(*(row+i)!=' '||*(row+i)!='\n'||*(row+i)!='\0'){
                                i++;
                                cikis(j, tmp, row);
                            }else{
                                k=0;
                                i++;
 
                                break;
                                }
                        }
                        i++;
                        k++;
 
                    }
                }else{i++;}
            }else{i++;}
        }
   }
}
 
int cikis(int rowNumber, int firstLetter, char* row){
printf("\nTreffer!\nEin passendes Wort wurde fuer Sie in der Zeile Nr. %d gefunden.\n", rowNumber);

printf("\n++++++++++++++++++++\n");
}

sem

".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?