Strona 1 z 1

[C] Słowa na tą samą literę

: 15 gru 2013, o 14:07
autor: Libertarian
Cześć, mógłby mi ktoś podać zarys jak powinien wyglądać pogram wypisujący słowa na tą samą literę z pliku? Chodzi mi głównie o to, że nie wiem za bardzo jakbym miał sprawdzać czy słowa zaczynają sie na tą samą literę albo chodziarz łatwiejszą wersje, czyli program znajdujacy słowa zaczynające sie na literę a. Z góry dziekuję za pomoc

[C] Słowa na tą samą literę

: 15 gru 2013, o 14:17
autor: bartek118
Nie do końca rozumiem o co Ci chodzi - litera jest z góry ustalona?

[C] Słowa na tą samą literę

: 16 gru 2013, o 18:07
autor: Libertarian
Powiedzmy, że tak

[C] Słowa na tą samą literę

: 19 gru 2013, o 21:56
autor: tomkoder
Zakładając że masz tę literę już w jakiejś zmiennej
np. char x= "a"

to jednym z potencjalnych rozwiązań jest:

Kod: Zaznacz cały

 FILE *file = fopen(filename, "r");

char *word = NULL;
   while(!feof(file))
      {
      sscanf(word, filename, "%s");
      if(word[0]==x)
         printf("%s
", word);
      }
to wykorzystuje że string jest tablicą charów, a chary to liczby, tak jak inty.
Dzięki temu word[0] to pierwsza litera twojego stringu i możesz ją normalnie porównywać ze zmienną x

[C] Słowa na tą samą literę

: 21 gru 2013, o 00:10
autor: Dasio11
Ten kod co prawda się kompiluje, ale instrukcja
sscanf(word, filename, "%s");
robi bardzo dziwne rzeczy.
Po pierwsze, będzie próbowała czytać z adresu wskazywanego przez word, czyli z adresu NULL, co oznacza błąd.
Po drugie, potraktuje filename jako ciąg formatujący, wbrew intencji.
Mogło chodzić o instrukcję
fscanf(file, "%s", word)
która jest sporo bliżej celu, ale wciąż spowoduje próbę zapisu do adresu NULL, czyli błąd. Dlatego trzeba jeszcze wprowadzić zmianę
char *word = NULL; --> char word[100];
(i mieć nadzieję, że w pliku nie będzie słów dłuższych niż 99 znaków).