Skocz do zawartości




Zdjęcie

zliczanie znaków


  • Zaloguj się, aby dodać odpowiedź
7 odpowiedzi w tym temacie

Katalogi.pl

Katalogi.pl
  • Bywalec

#1 R4v3n

R4v3n

    1

  • Members
  • PipPipPip
  • 36 postów

Napisano 22 maj 2007 - 09:23

Witam, moze mi ktoś obczaic to co mam bo nie moge znalec dziury w całym, mam do zrobienia programik kotry bedie zliczał ilosc wystepwana kazdego znaku wpisanego z klawiatury, z tym ze ma to byc do momentu pojawienia sie kropki..

tutjaj mam kod kotry mi zlicza wszystko fajnie, nawet spacje...

#include
#include
#include
using namespace std;
int main()
{
char zdanie[100];
int litery[256]={0};
cout<<"Wpisz zdanie: ";
fgets(zdanie,99,stdin);
int dlugosc = strlen(zdanie);

for(int i=0;i litery[(int)zdanie]++;

for(int i=0;i<256;i++)
if(litery>0)
cout<<(char)i<<" - "<<
system("PAUSE");
return EXIT_SUCCESS;
}


a tutaj probowałem cos zrobi aby w moomencie pojawienia sie kropki juz dalej nie liczył, i wrzuccie to do kompilatora i zobaczcie co sie dzieje.. jakie dziwne zcaczki pokazuje.

#include
#include
#include
using namespace std;
int main()
{
char zdanie[100];
int litery[256]={0};
cout<<"Wpisz zdanie: ";
char kropka;
int i=0;
do
{
cin>>kropka;
if (kropka!='.') zdanie=kropka;
i++;}
while (kropka!='.');

int dlugosc = strlen(zdanie);

for(int i=0;i litery[(int)zdanie]++;

for(int i=0;i<256;i++)
if(litery>0)
cout<<(char)i<<" - "<<
system("PAUSE");
return EXIT_SUCCESS;
}



#2 kortyg

kortyg

    1

  • Members
  • PipPipPip
  • 688 postów

Napisano 22 maj 2007 - 11:13

Jeżeli ma tylko zliczać znaki z klawy,to można tak:
#include
#include
using namespace std;
main()
{
int i=0;
char znak='x';
cout<<"pisz znaki - koniec to kropka"<while (znak!='.')
{ znak=getch();
cout< i++;
}
cout< cout<<"ilosc znakow razem z kropka= "<getch();
}

#3 R4v3n

R4v3n

    1

  • Members
  • PipPipPip
  • 36 postów

Napisano 22 maj 2007 - 12:28

źle mnie zrozumiałes, ma zliczac znaki ale nie ogólena licze, tylko ma pokazac jaka litera ile razy wystąpiła w zdaniu

#4 Zoltar7

Zoltar7

    Doradca Programming

  • Members
  • PipPipPip
  • 5024 postów

Napisano 22 maj 2007 - 13:16

Tak na oko nie kończysz napisu znakiem 0. Każdy (standardowy) ciąg znaków w C++ musi się kończyć znakiem 0.

Zamiast wierszy:

if (kropka != '.') zdanie[i ] = kropka;
i++;

Wpisz wiersz:

zdanie[i ] = (kropka != '.') ? kropka : 0;
i++;


Zmieniony przez - Zoltar7 w dniu 2007-05-22 14:17:08

#5 R4v3n

R4v3n

    1

  • Members
  • PipPipPip
  • 36 postów

Napisano 22 maj 2007 - 14:11

Zoltar... zmieniłem to ale teraz nie działa cos to i mi wywala wogóle program

#6 Zoltar7

Zoltar7

    Doradca Programming

  • Members
  • PipPipPip
  • 5024 postów

Napisano 22 maj 2007 - 15:08

cin i tak kończy wprowadzanie po wprowadzeniu całego wiersza, więc nie ma sensu robić wprowadzania w pętli. O to chodziło?

#include
#include
using namespace std;

int main()
{
char wiersz[100];
int litery[0x100];
unsigned int i;
for (i = 0; i < 0x100; i++)
litery[i ] = 0;
cin.getline(wiersz, sizeof wiersz);
for (i = 0; i < strlen(wiersz) && wiersz[i ] != '.'; i++)
litery[wiersz[i ]]++;
cout << "Liczba znakow:" << endl;
for (i = 0; i < 0x100; i++)
if (litery[i ] > 0)
{
if (i < 32)
cout << "#" << i;
else
cout << "'" << (char)i << "'";
cout << " = " << litery[i ] << endl;
}
cout << endl;
system("PAUSE");
return EXIT_SUCCESS;
}


#7 R4v3n

R4v3n

    1

  • Members
  • PipPipPip
  • 36 postów

Napisano 22 maj 2007 - 19:37

stary jestes wielki...nie mogłem rozkniic jak mam zrobic zeby działało a teraz juz jest wsio, tylko blokowy musze jescze do tego zmontowac ;/

#8 kortyg

kortyg

    1

  • Members
  • PipPipPip
  • 688 postów

Napisano 23 maj 2007 - 09:18

Rzeczywiście nie zrozumiałem. Możesz tak napisać (jest krótko i przejrzyście):
#include
#include
using namespace std;
main()
{
int i,jaki;
char znak='x';
int tab[ 255 ];for(int j=0;j<255;j++)tab[ j ]=0;
cout<<"pisz znaki - koniec to kropka"<do
{
znak=getche();
jaki=int(znak);
tab[ jaki ]=tab[ jaki ]+1;
} while (znak!='.');
cout<for(i=0;i<255;i++)
{
if(tab[ i ]==0)continue;else
cout< }
getch();
}

Zmieniony przez - kortyg w dniu 2007-05-23 10:20:33



Similar Topics Collapse

  Temat Forum Autor Podsumowanie Ostatni post


Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych


Inne serwisy: IFD