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).