matematykaszkolna.pl
c++ jakubs: Jest ktoś chętny do pomocy ? Mam funkcję: void chunk(const char* test, char znak){ do{ if(*test==znak){ std::cout << "jest znak" << std::endl; } test++; }while(*test != '\n'); } Dla przykładowego : test = "Ala ma kota a kot ma mysz"; W odpowiedzi otrzymuję 11, a według mnie powinno byc 6. Co robię źle ?
18 lut 02:07
jakubs: zle skopiowalem int i = 0; do{ if(*test1==znak){ i++; } test1++; }while(*test1 != '\n'); std::cout << i << std::endl;
18 lut 02:11
KoOoX: Po pierwsze co ta funkcja ma robić? Bo wiesz założenia to jedno a wdrożenie to 2.
18 lut 02:26
jakubs: Kurde nie napisalem, funkcja ma zliczac wystapienia "znak". Probuje troszke inaczej, zobaczymy co mi wyjdzie
18 lut 02:36
Qulka: dobrze napisane bo się domyśliłam o co chodzi emotka
18 lut 02:43
XOXO: Spróbuj coś takiego unsigned int getcharnumb(const char *string, const char character) { unsigned int charnumb = 0; unsigned int strlen = strlen(string); unsigned int i = 0; while(i < strlen) { if(*string[i] == character) charnumb++; } return charnumbl }
18 lut 02:44
jakubs: Nie moge korzystac ze string−a i innych tego typu bajerow, ani dynamicznej alokacji pamieci. Takie zadanko kiedys na jednych labroatoriach z c++ bylo i sobie cwicze emotka
18 lut 02:47
jakubs: do{ std::cout << test1 << std::endl; if(*(test1+i)==znak){ j++; } i++; test1++; }while(*(test1+i)!='\n'); hmm wywala duzo syfu z pamieci, kurde jak tu zrobic zeby petla konczyla sie na koncu "Ala ma kota a kot ma mysz" ?
18 lut 02:52
Dziadek Mróz: #include <iostream> using namespace std; int chunk(const char *tekst, char znak) { int i = 0; int j = 0; do { if (*(tekst + i) == znak) { cout << "Found '" << znak << "' at pos " << i << endl; j++; } i++; } while (*(tekst + i)); return j; } int main() { cout << chunk("Ala ma kota a kot ma mysz", 'a') << endl; return 0; }
18 lut 10:05
Dziadek Mróz: Napis nie kończy się nową linią \n tylko znakiem \0 i wtedy zwraca 0, czyli fałsz.
18 lut 10:06
Dziadek Mróz: To tak jakbyś chciał podać do funkcji treść książki, w której jest multum nowych linii
18 lut 10:16
jakubs: Na wiki później zobaczyłem właśnie, że \0, ale i tak mi coś dalej nie chciało wyjść. Dzięki emotka
18 lut 14:01