matematykaszkolna.pl
C++ KiedyśInformatyk: Jak usunac konkretny znak z danego stringa? np. string txt="ro.we.r" I chcialbym usunac wszystkie wystąpienia kropki Iteruje petla po txt[i] i jak znajde kod ascii kropki to? Nie wiem jak usunac... Funkcja erase z biblioteki string nie dziala Albo zle ja uzywam Probowalem po prostu dac '\0' ale ten znak traktuje jak spacje i mi owszem zastepuje kropke ale spacja Pomozcie ! Jezyk cp Plis
8 maj 14:53
Kaspian: mozesz stworzyc nowa tablice znaków string i do niego zapisywac w petli wszystkie znaki oprucz kropki
8 maj 14:56
Kaspian: oprócz*
8 maj 14:56
Kaspian: kropka ="."
8 maj 14:57
Rafal: Być może dlatego nie działa, że w trakcie usuwania zmieniasz rozmiar stringa.
8 maj 15:00
KiedyśInformatyk: No ok fajno... Jakis pomysł jest z ta tablica... Ale ktos ma jeszcze jakis inny?
8 maj 15:14
Rafal: Sprawdź ten kod: #include <iostream> #include <string> int main() { std::string txt="ro.we.r"; for (int i = 0; i < txt.size(); ++i) { if (txt[i] == '.') { txt.erase(i, 1); −−i; } } std::cout << txt << "\n"; return 0; }
8 maj 15:15
Kaspian: Napis.erase( odkąd usuwasz, ile znaków usuwasz );
8 maj 15:18
Kaspian: tak jak rafał
8 maj 15:18
8 maj 15:33
KiedyśInformatyk: dzieki wam
8 maj 15:37
Dziadek Mróz: #include <iostream> #include <string> int main() { std::string str = "ro.we.r"; na szybko: # include <algorithm> str.erase(std::remove(str.begin(), str.end(), '.'), str.end()); podejście 2: size_t pos = str.find("."); while (pos != std::string::npos) { str.erase(pos, 1); pos = str.find(".", pos+1); } return 0; }
8 maj 16:01