Program szukający danej liter/liter

0

Jak napisać program, który znajdzie słowa zawierające literę h oraz ch ?
Mam taki program :

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(){
    FILE *slownik, *zapis;
    slownik = fopen("slownik.txt", "r");
     if((slownik = fopen("plik.txt", "r")) == NULL){ //pom-pomoc
        printf("Blad otwarcia pliku plik.txt");//tryb otwarcia do odczytu
        getch();
        return 0;
    }
    zapis = fopen("zapis.txt" , "w");

    char litera;
    int pozycja ;
    printf("Podaj litere i pozycje ");
    scanf("%c %d",  &litera, &pozycja);
    char slowo[30];
    while((fscanf(slownik, "%s", slowo))!=EOF){
        if(strlen(slowo)>pozycja &&litera == slowo[pozycja])
            fprintf(zapis, "%s\n", slowo);
    }


    fclose(slownik);
    fclose(zapis);
    return 0;
}


Nie wiem jak go zmodyfikować

0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
    FILE *slownik, *zapis;
    slownik = fopen("slownik.txt", "r");
     if((slownik = fopen("plik.txt", "r")) == NULL){ //pom-pomoc
        printf("Blad otwarcia pliku plik.txt");//tryb otwarcia do odczytu
        getch();
        return 0;
    }
    zapis = fopen("zapis.txt" , "w");

	int n=0;
	int n2=0;
	
    char s[50] = "h";
    char s2[50] ="ch";
    
    char slowo[50];
    
    fprintf(zapis,"Lista słów:\n");
    
    while((fscanf(slownik, "%s", slowo))==1){
    	
        if(strstr(slowo,s)!=0){
        	n++;
        	fprintf(zapis,"%s\n",slowo);
        	
		}
		
		if(strstr(slowo,s2)!=0){
			n2++;
			
		}
            
    }

fprintf(zapis, "Liczba słów z literą %s: %d\nLiczba słów z literą %s: %d\n", s,n,s2,n2);
    fclose(slownik);
    fclose(zapis);
    return 0;
}
0
gk1982 napisał(a):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
    FILE *slownik, *zapis;
    slownik = fopen("slownik.txt", "r");
     if((slownik = fopen("plik.txt", "r")) == NULL){ //pom-pomoc
        printf("Blad otwarcia pliku plik.txt");//tryb otwarcia do odczytu
        getch();
        return 0;
    }
    zapis = fopen("zapis.txt" , "w");

	int n=0;
	int n2=0;
	
    char s[50] = "h";
    char s2[50] ="ch";
    
    char slowo[50];
    
    fprintf(zapis,"Lista słów:\n");
    
    while((fscanf(slownik, "%s", slowo))==1){
    	
        if(strstr(slowo,s)!=0){
        	n++;
        	fprintf(zapis,"%s\n",slowo);
        	
		}
		
		if(strstr(slowo,s2)!=0){
			n2++;
			
		}
            
    }

fprintf(zapis, "Liczba słów z literą %s: %d\nLiczba słów z literą %s: %d\n", s,n,s2,n2);
    fclose(slownik);
    fclose(zapis);
    return 0;
}

Zmodyfikowałam ale coś jest nie tak bo nie wpisuje mi słów do plików

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main(){
FILE *slownik, *zapis1 ,*zapis2;
slownik = fopen("slownik.txt", "r");
if((slownik = fopen("plik.txt", "r")) == NULL){ //pom-pomoc
printf("Blad otwarcia pliku plik.txt");//tryb otwarcia do odczytu
getch();
return 0;
}
zapis1 = fopen("zapis1.txt" , "w");
zapis2 = fopen("zapis2.txt" , "w");

char s[50] = "h";
char s2[50] ="ch";

char slowo[50];


while((fscanf(slownik, "%s", slowo))!=EOF){

    if(strstr(slowo,s)!=0){
        fprintf(zapis1,"%s\n",slowo);}



    if(strstr(slowo,s2)!=0){
        fprintf(zapis2,"%s\n",slowo);}

    }
fclose(slownik);
fclose(zapis1);
fclose(zapis2);
return 0;

}

0
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>

int main(){
FILE *slownik, *zapis1 ,*zapis2;
slownik = fopen("slownik.txt", "r");
if((slownik = fopen("plik.txt", "r")) == NULL){ //pom-pomoc
printf("Blad otwarcia pliku plik.txt");//tryb otwarcia do odczytu
getch();
return 0;
}
zapis1 = fopen("zapis1.txt" , "w");
zapis2 = fopen("zapis2.txt" , "w");

char s[50] = "h";
char s2[50] ="ch";

char slowo[50];

while((fscanf(slownik, "%s", slowo))!=EOF){

    if(strstr(slowo,s)!=0){
        fprintf(zapis1,"%s\n",slowo);}

    if(strstr(slowo,s2)!=0){
        fprintf(zapis2,"%s\n",slowo);}

    }
fclose(slownik);
fclose(zapis1);
fclose(zapis2);
return 0;

}
1

Po co szukać "ch" skoro znalezienie "h" jest warunkiem koniecznym na znalezienie "ch"?

1 użytkowników online, w tym zalogowanych: 0, gości: 1