Ładny brzuch
problem : wyswietla mi spacje, ale nie liczy ile razy sie powtorzyla (tak jak przy innych literach) :(
ma ktos jakis pomysl ?
... mile widzane rady, przyklady ...
formy grzecznosciowe : prosze , dziekuje : )
tutaj caly kod wklejam...
#include <iostream>
#include <string.h>
#include <ctype.h>
using namespace std;
char litera[20];
char zdanie[20];
char zda2[20];
int tab1[20];
int offset=0;
int ilosc;
bool GETWORD(char* theString,char* litera, int&offset);
char oblicz(int ilosc, char tb[]);
////////////////////////////////////////////////////////////////////////////////
int main(){
cout<< "Podaj zdanie: ";
cin.getline(zdanie,sizeof(zdanie));
ilosc=strlen(zdanie);
oblicz(ilosc , zdanie);
while (GETWORD(zdanie,litera,offset)){
cout << endl;
}
system("PAUSE");
return 0;
}
///////////funkcja wyswitlajaca zdanie przy uzyciu//////////////////////////////
///////////operacji arytmetycznych na wskaznikach///////////////////////////////
bool GETWORD(char* theString,char* litera,int& offset){
if (!theString[offset]) //sprawdza czy koniec lancucha
return 0;
char *w1, *w2;
w1=w2=theString+offset; //wskazuje nastepne slowo
for (int i=0;i<(int)strlen(w1)&& !isalnum(w1[0]); i++) //pomijanie wiodacych spacji
w1++;
if(!isalnum(w1[0])) //sprawdza czy znalazlo slowo
return 0;
w2=w1; // w1 i w2 wskazuja na poczatek nastepnego slowa
while (isalnum(w2[0])) //przesuwamy w2 na koniec
w2++;
int len =int (w2-w1);
strncpy (litera,w1,len);
litera[len]='\0';
for (int j = int(w2-theString); j<(int)strlen(theString)&& !isalnum(w2[0]);j++){
w2++;
}
offset = int(w2-theString);
int i=0;
while(*(litera+i)) {
cout<<*(litera+i)<< "\t" << tab1[i] << endl;
i++;
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
char oblicz(int ilo, char zda[]){
int ille, max=0;
char znak;
strcpy(zda2,zda);
for(int i=0;i<20;i++){
ille = 0;
for( int j=0;j<ilo;j++){
if(zda[j] == zda2[i]){
ille++;
}
}
tab1[i]=ille;
}
}
BTW: do czego ten program i co on robi?
program wyglada tak :
podaj zdanie : przyklad dzialania
wynik :
p 1
r 1
z 1
y 1
k 1
l 2
a 4
d 2
1
d 2
z 1
i 2
a 4
l 2
a 4
n 1
i 2
a 4
wyswietla zdanie w pionie i oblicza ile razy dana literka sie powtorzyla ....
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
ma ktos jakis pomysl ?
... mile widzane rady, przyklady ...
formy grzecznosciowe : prosze , dziekuje : )
tutaj caly kod wklejam...
#include <iostream>
#include <string.h>
#include <ctype.h>
using namespace std;
char litera[20];
char zdanie[20];
char zda2[20];
int tab1[20];
int offset=0;
int ilosc;
bool GETWORD(char* theString,char* litera, int&offset);
char oblicz(int ilosc, char tb[]);
////////////////////////////////////////////////////////////////////////////////
int main(){
cout<< "Podaj zdanie: ";
cin.getline(zdanie,sizeof(zdanie));
ilosc=strlen(zdanie);
oblicz(ilosc , zdanie);
while (GETWORD(zdanie,litera,offset)){
cout << endl;
}
system("PAUSE");
return 0;
}
///////////funkcja wyswitlajaca zdanie przy uzyciu//////////////////////////////
///////////operacji arytmetycznych na wskaznikach///////////////////////////////
bool GETWORD(char* theString,char* litera,int& offset){
if (!theString[offset]) //sprawdza czy koniec lancucha
return 0;
char *w1, *w2;
w1=w2=theString+offset; //wskazuje nastepne slowo
for (int i=0;i<(int)strlen(w1)&& !isalnum(w1[0]); i++) //pomijanie wiodacych spacji
w1++;
if(!isalnum(w1[0])) //sprawdza czy znalazlo slowo
return 0;
w2=w1; // w1 i w2 wskazuja na poczatek nastepnego slowa
while (isalnum(w2[0])) //przesuwamy w2 na koniec
w2++;
int len =int (w2-w1);
strncpy (litera,w1,len);
litera[len]='\0';
for (int j = int(w2-theString); j<(int)strlen(theString)&& !isalnum(w2[0]);j++){
w2++;
}
offset = int(w2-theString);
int i=0;
while(*(litera+i)) {
cout<<*(litera+i)<< "\t" << tab1[i] << endl;
i++;
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
char oblicz(int ilo, char zda[]){
int ille, max=0;
char znak;
strcpy(zda2,zda);
for(int i=0;i<20;i++){
ille = 0;
for( int j=0;j<ilo;j++){
if(zda[j] == zda2[i]){
ille++;
}
}
tab1[i]=ille;
}
}
BTW: do czego ten program i co on robi?
program wyglada tak :
podaj zdanie : przyklad dzialania
wynik :
p 1
r 1
z 1
y 1
k 1
l 2
a 4
d 2
1
d 2
z 1
i 2
a 4
l 2
a 4
n 1
i 2
a 4
wyswietla zdanie w pionie i oblicza ile razy dana literka sie powtorzyla ....