
C - retazce
Ahoj mal som spravit program ktory urci presny pocet jednotlivych znakov vo vete, a napise jednotlive znaky a ich konkretny pocet kolko ich je. Vsetko slape ale pred tym mi to napise jednotku a neviem preco len tak odveci nevie niekto??
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "retazec.h"
int main()
{
const int MAX=40;
char veta[MAX];
printf("Zadaj vetu: ");
fgets(veta,MAX,stdin);
rozbor(veta);
return 0;
}
void rozbor(char veta[])
{
int dlzka=strlen(veta);
int i=0;
int j=0;
int skuska=0;
int pocet=0;
char znak=0;
while(i<177)
{
for(j=0;j<dlzka;j++)
{
if(veta[j]==znak)
{
pocet++;
skuska=1;
}
}
if(skuska==1)
{
printf("%c %d\n",znak,pocet);
}
skuska=0;
pocet=0;
i++;
znak++;
}
}
lebo pocitas aj CR a LF znaky a vypisujes ich debilne pomocou %c
(BTW. mas tam zbytocne dve premenne i a znak ktore znamenaju uplne to same)
Co je CR a LF znak?
len tak mimochodom, debugger pouzivat nebudes ani za svet?
jaj no jasne tie prve znaky tam zaratavat nemusim a este mi to pocita aj jeden z nich. Este som sa chcel spitat ak to nerobi velke starosti ako spravim aby program triedil tie pismena podla abecedy ale Velke aj male pismena dokopy??
if(tolower(veta[j])==znak)
To iba vsetky Velke pismena v retazci da na male nie??
chcel si pocitat velke a male dokopy. Ked nie tak potom ja neviem co chces.
No chcel som aby to triedilo podla abecedy aj velke aj male tj. aAbBcC...xXyYzZ lebo normalne to robi abc...xzyABC....XYZ
Tak si to v tom poradi aj testuj.
if(znak>='A'&&znak<='Z')
si otestujes a vypises aj pocet pre (znak-('a'-'A'))
a potom
if(znak>='a'&&znak<='z')
nebudes robit nic.