Ĺadny brzuch
Witam!
Mam napisac program ktory zlicza mi ile liter wystepuje w danym wyrazie z odrozniem małych i duzych np. aNna -> wystepuje 2x n.
Nie moge uzywac gotowych funkcji oraz getch();
Duza litera w kodzie ANCII rozni sie od malej o 32 i to nalezy wykorzystać.
Stworzylem cos takiego jednak nie wiem jak zrobić alby litery duze i male były sumowane razem.
podejrzewam ze nalezy cos dodac do if?
#include<stdio.h> #include<conio.h> char tab[20]; char litera[2]; int i; int licznik=0; int licznik2=0; int ile( char tab[]); int naliczanie( char []); main() { printf("\t Program sprawdza ile liter wystepuje w danym wyrazie \n\n"); printf("Podaj wyraz: "); scanf("%s",&tab); printf("Podaj litere ktora chcesz sprawdzic: "); scanf("%s",&litera); ile(tab); naliczanie(tab); printf("\nPodana litera wystepuje: %d \n",licznik2); return 0; } /******/ int ile(char[]) { while(tab[licznik]!=0) { licznik++; } return licznik; } /******/ int naliczanie( char tab[]) { for(i=0;i<licznik;i++) { if(tab[i]==litera[0]) { licznik2++; } } return licznik2; }
Sprawdzb przy pomocy if każdy kod Ascii zarono dla małej litery i duzej. Jeśli wystąpi to do jakiejś zmiennej dodaj 1.
Użytkownik statjacek edytował ten post 09 październik 2005, 12:23
no tyle to też wiem, chyba zresztą podobną funkcje napisałem.
Cały problem w tym jak to sprawdzić ?
no tyle to też wiem, chyba zresztą podobną funkcje napisałem.
Cały problem w tym jak to sprawdzić ?
Nie wiem jak w C ale w delphi jest cos takiego jak onkeypres dla komponentów edycyjnych.
no i co? jaki to ma zwiazek? po pierwsze on pisze w czystym C i konsoli, a nie w bcb z VCL. a po drugie, nawet gdyby uzywal vcl to co by mu dalo to zdarzenie? :>
Instrukcja if w funkcji naliczanie mogłaby wyglądać tak:
if (tab[i]==malalitera || tab[i]==duzalitera) {
licznik2++;
}
W zmiennych malalitera i duzalitera trzeba umieścić małą i dużą literę ;)
Żeby sprawdzić czy użytkownik wprowadził dużą czy małą literę wystarczy wykorzystać instrukcję if i to, że litery są ułożone alfabetycznie w ASCII. A potem możesz odjąć/dodać 32 :)
do autora tematu: czy masz gwarancje ze beda to znaki z przedzialu 'a'..'z','A'..'Z' ? :)
~
Hmm a czy musisz zliczac osobno male i duze literki czy musisz zliczyc wszystkie litery np "a" niezaleznie od wielkosci? Jesli to drugie to pobrany znak za kazdym razem zamieniaj na mala litere i po klopocie.
Hmm a czy musisz zliczac osobno male i duze literki czy musisz zliczyc wszystkie litery np "a" niezaleznie od wielkosci? Jesli to drugie to pobrany znak za kazdym razem zamieniaj na mala litere i po klopocie.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam napisac program ktory zlicza mi ile liter wystepuje w danym wyrazie z odrozniem małych i duzych np. aNna -> wystepuje 2x n.
Nie moge uzywac gotowych funkcji oraz getch();
Duza litera w kodzie ANCII rozni sie od malej o 32 i to nalezy wykorzystać.
Stworzylem cos takiego jednak nie wiem jak zrobić alby litery duze i male były sumowane razem.
podejrzewam ze nalezy cos dodac do if?
#include<stdio.h> #include<conio.h> char tab[20]; char litera[2]; int i; int licznik=0; int licznik2=0; int ile( char tab[]); int naliczanie( char []); main() { printf("\t Program sprawdza ile liter wystepuje w danym wyrazie \n\n"); printf("Podaj wyraz: "); scanf("%s",&tab); printf("Podaj litere ktora chcesz sprawdzic: "); scanf("%s",&litera); ile(tab); naliczanie(tab); printf("\nPodana litera wystepuje: %d \n",licznik2); return 0; } /******/ int ile(char[]) { while(tab[licznik]!=0) { licznik++; } return licznik; } /******/ int naliczanie( char tab[]) { for(i=0;i<licznik;i++) { if(tab[i]==litera[0]) { licznik2++; } } return licznik2; }
Sprawdzb przy pomocy if każdy kod Ascii zarono dla małej litery i duzej. Jeśli wystąpi to do jakiejś zmiennej dodaj 1.
Użytkownik statjacek edytował ten post 09 październik 2005, 12:23
no tyle to też wiem, chyba zresztą podobną funkcje napisałem.
Cały problem w tym jak to sprawdzić ?
no tyle to też wiem, chyba zresztą podobną funkcje napisałem.
Cały problem w tym jak to sprawdzić ?

Nie wiem jak w C ale w delphi jest cos takiego jak onkeypres dla komponentów edycyjnych.

no i co? jaki to ma zwiazek? po pierwsze on pisze w czystym C i konsoli, a nie w bcb z VCL. a po drugie, nawet gdyby uzywal vcl to co by mu dalo to zdarzenie? :>

Instrukcja if w funkcji naliczanie mogłaby wyglądać tak:
if (tab[i]==malalitera || tab[i]==duzalitera) {
licznik2++;
}
W zmiennych malalitera i duzalitera trzeba umieścić małą i dużą literę ;)
Żeby sprawdzić czy użytkownik wprowadził dużą czy małą literę wystarczy wykorzystać instrukcję if i to, że litery są ułożone alfabetycznie w ASCII. A potem możesz odjąć/dodać 32 :)
do autora tematu: czy masz gwarancje ze beda to znaki z przedzialu 'a'..'z','A'..'Z' ? :)
~

Hmm a czy musisz zliczac osobno male i duze literki czy musisz zliczyc wszystkie litery np "a" niezaleznie od wielkosci? Jesli to drugie to pobrany znak za kazdym razem zamieniaj na mala litere i po klopocie.
Hmm a czy musisz zliczac osobno male i duze literki czy musisz zliczyc wszystkie litery np "a" niezaleznie od wielkosci? Jesli to drugie to pobrany znak za kazdym razem zamieniaj na mala litere i po klopocie.
