matematykaszkolna.pl
c++ Metis: C++ usuwanie liter http://pastebin.com/ewYUUGau Może ktoś mi pomóc w tym zadaniu? Nie wiem jakiej funkcji uzyć.
27 sty 22:05
27 sty 22:13
Metis: Nie.
27 sty 22:14
lolek: pytanie 1, Czy potrafisz analizować każdy element tabeli ? ( chodzi mi czy umiesz w kodzie zrobić tak, ze każdy element porównywany ) 2. Czy potafisz usuwać elementy tablicy ?
27 sty 22:20
Metis: Krzysiek , Dziadku? emotka
27 sty 22:23
Metis: Napisane.
27 sty 22:28
lolek: brawo
27 sty 22:29
jc: void usun(int pocz, int kon, char tekst[]){ while( tekst[pocz++] = tekst[kon++] ); }
27 sty 22:31
Dziadek Mróz: Łap http://pastebin.com/CfzMX76n
27 sty 22:46
Dziadek Mróz: A funkcję to piszesz: char *usunlitery(char *napis, int rozmiar, int pocz, int kon) { char *wynik = NULL; ... return wynik; }
27 sty 22:49
jc: No tak, ja usuwałem wszytko, nie tylko litery...
27 sty 22:50
Metis: Napisałem to tak: http://pastebin.com/sv0DhwiR
27 sty 22:56
Metis: Jezeli na pozycji i znajduje sie litera to w jej miejsce skopiuj znak przed nią Jeśli znajduje sie inny znak niz litera zwieksz licznik o 1.
27 sty 22:57
Dziadek Mróz: To c czy c++?
27 sty 23:07
Metis: Możecie mi pomóc tutaj: Czemu to nie działa? http://pastebin.com/r3dbZytg Widzę to tak: Podajemy tekst np. Ala Następnie ilosc długosc zadanego tekstu: czyli np 8 Mamy wiec umiescic 5 spacji na koncu. Do komórki tablicy długość +1 = 4 wstawiam spacje zwiekszam długosc o 1 na miejsce 5 wstawiam spacje i tak, aż długość nie równa się zadanej długosci 8.
27 sty 23:07
Metis: C++, ale nie mogę uzywać biblioteki Cctype i stringów.
27 sty 23:08
Dziadek Mróz: no to: std::string napis; ... if (isalpha(napis[i])) napis.erase(i);
27 sty 23:19
Dziadek Mróz: to tak jak pisałem wyżej, char *napis i kopiowanie do char *wynik
27 sty 23:19
Dziadek Mróz: własna funkcja int isalpha(char ch) { return (ch >= 'A' && ch <= 'Z') && (ch >= 'a' && ch <= 'z'); }
27 sty 23:21
Metis: A możesz zerknąć na to Dziadku? http://pastebin.com/r3dbZytg
27 sty 23:22
Metis: Wiem jak to zrobię... połacze stringi.
27 sty 23:25
Dziadek Mróz: coś w stylu std::setw(int)
27 sty 23:34
Dziadek Mróz: std::cout << std::setw(10) << "napis1" << "napis2"; // napis1 napis2
27 sty 23:36
Dziadek Mróz: Jak działa jak należy to git
27 sty 23:36
jc: Na 70 stronie książki język ANSI C radzą używać funkcji w rodzaju isalpha() itd. wyjaśniając, że pewne zasady mogą nie obowiązywać w innym kodowaniu niż ASCII.
27 sty 23:46
Metis: Nie działaemotka http://prntscr.com/e18nma Teraz zamysł jest taki: Tworze tablice o takiej wielkości o ile ma zostać dodana ilości spacji na końcu łańcucha. Nastepnie wypełniam ją spacjami. I chce połaczyć te dwie tablice , ale wyrzuca błademotka
27 sty 23:46
Metis: jc dzięki, ale Profesor zakazał Nam używania tej biblioteki i nie mogę emotka
27 sty 23:47
jc: Metis, a nie ładniej byłoby wprowadzić dane do funkcji jako parametry wywołania, a nie tylnymi drzwiami.
28 sty 00:05
Metis: Co masz na myśli jc? emotka
28 sty 00:08
jc: void uzupelnienie(char tab[], int n){ int i = 0; while( tab[i] ) i++; while( i < n ) { tab[i]=' '; i++; } tab[i] ='\0'; }
28 sty 00:09
jc: Chodzi o to, że Twoja funkcja pobiera jakieś parametry i dodatkowo zadaje pytania użytkownikowi, co więcej, sama co mówi do użytkownika. Gdyby to była funkcja przeznaczona do komunikacji, to w byłoby dobrze, ale jak rozumiem, funkcja ma dokonać jakiejś zmiany w tekście.
28 sty 00:12
Metis: Możecie mi powiedzieć czemu tablica tab2 nie wypelnia sie tak jak trzeba? http://pastebin.com/HNZxcDEA
28 sty 00:12
jc: A możesz powiedzieć co się dzieje? Czyżby na końcu pojawiały się dziwne znaki?
28 sty 00:15
Metis: Tak, dokładnie.
28 sty 00:16
jc: Jeszcze jedno, tworzysz tablicę tab2 operatorem new. Wypadałoby zwolnić pamięć (wiem, system zwolni sam pamięć po wykonaniu programu, ale tak się nie pisze).
28 sty 00:17
jc: funkcja << rozpoznaje koniec tekstu po zerze (prawdziwym). Jak go nie dopiszesz, to idzie dalej.
28 sty 00:19
Metis: Tak czy inaczej nie działa. Dodałem warunek: if (tab2[i] == '/0') break;
28 sty 00:22
jc: Masz na końcu sam dopisać tab2[i]=0, a nie pytać.
28 sty 00:25
Metis: Już lepiej, ale dwa ostatnie znaki zamiast spacji są "tymi dziwnymi" .
28 sty 00:31
jc: ? Mój program z 0:9 działa poprawnie.
28 sty 00:40
Metis: Działa emotka jc nie rozumiem tylko tego warunku: while (tab[i]) i++;
28 sty 00:58
jc: Dopóki tab[i] nie jest końcem, zwiększaj i. Po prostu szukamy końca tab.
28 sty 08:20