Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C] zliczanie ilości znaków w tekscie

Paw608 05 Maj 2011 21:57 5728 4
  • #1 05 Maj 2011 21:57
    Paw608
    Poziom 9  

    Witam
    mam napisać program który zlicza ilość wszystkich znaków w pobranym tekście, oraz ilość wystąpień każdej litery w tym tekście, jak do tej pory udało mi się zrobić tylko licznik wszystkich znaków a nie wiem jak zrobić licznik każdej litery z osobna. Czy mógłby ktoś pomóc ??



    #include <stdio.h>
    #include <conio.h>

    int main()
    {
    FILE *in;
    int licz_litery;

    // otwarcie pliku tekstowego do odczytu: rt
    if ((in = fopen("tekst.txt", "rt"))== NULL)
    {
    fprintf(stderr, "\nBlad otwarcia pliku dyskowego!\n");
    getch();
    return 1;
    }

    licz_litery=0;
    char litera;

    while( ( litera = fgetc(in) ) && !feof(in) )
    {
    printf("%c",litera);
    if(( litera>='a' && litera<='z' )||( litera>='A' && litera<='Z' ) )
    ++licz_litery;
    //liczy litery bo tak mu kazałem, a on wykonuje to co się mu każe, a nie to o czym się pomyśli

    }
    printf(" W tekscie jest %d liter\n",licz_litery);

    // zamkniecie pliku
    fclose(in);
    getch();
    return 0;

    0 4
  • #2 05 Maj 2011 22:20
    Xitami
    Poziom 29  

    int h[256]
    char buf[1000]
    char * p
    int i

    gets(buf)
    p=buf
    while(*p) h[*p++]++

    for(i='A'; i<='Z'; i++) printf("%c %8d\n", (char)i, h[i]);

    1
  • #3 05 Maj 2011 22:20
    excray
    Poziom 39  

    Sorki, nie znam C. Ja by zrobił tak:
    Deklarujesz tablicę na 26 (od A do Z) wartości int zawierającą na start 0
    w pętli zliczania znaków dodajesz coś takiego
    y=kod ASCII znaku
    y=y-65 (kod ascii dla a to 65 a chcemy mieć dla A 0)
    pobierz z tablicy: x=tablica(y)
    x:=x+1
    zapisz do tablicy: tablica(y)=x

    i po skończonej procedurze zliczania znaków masz gotową tablicę z ilością poszczególnych liter.

    1
  • #4 05 Maj 2011 22:31
    Zadusiciel
    Poziom 13  

    Kod: c
    Zaloguj się, aby zobaczyć kod

    -1
  • #5 09 Maj 2011 23:08
    szel
    Poziom 20  

    Po modernizacji kodu

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0