witam mianowicie napisałem program i chciałem żeby z stringa nazwa przepisało do stringa nazwa2 i nie wiem czemu nie działa wiem ze mozna poprotu napisać nazwa2=nazwa; ale chciałbym wiedzieć dlaczego ten sposób nie działa przepisywanie pojedynczych literek
#include <iostream> using namespace std; string nazwa; string nazwa2; int main() { cout << "podaj nazwe stringu: " ; cin>>nazwa; int dlugosc=nazwa.length(); for(int i=0;i<dlugosc;i++) { nazwa[i]=nazwa2[i]; } cout<<nazwa2; return 0; }
nazwa[i]=nazwa2[i];
Powinno być odwrotnie. W końcu kopiujesz znaki z nazwa do nazwa2:
nazwa2[i]+=nazwa[i];
Pomijając fakt przepisywania nie do tego co trzeba, to jeszcze przepisujesz string z zaalokowaną pamięcią do tego bez...
nazwa2.push_back(nazwa[i]); // lub nazwa2 += nazwa[i];
A jeśli już chcesz z indeksami to najpierw:
nazwa2.resize(dlugosc,0);
Najprostsze rozwiązania są najlepsze.
Zamiast tworzyć pętle, napisz:
std::string pierwszy="Ala ma kota"; std::string drugi; drugi=pierwszy; std:;cout<<"Drugi wynosi: "<<druga<<'\n';
93,468 zapytań
142,404 odpowiedzi
322,706 komentarzy
62,849 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto polecana książka warta uwagi.Pełną listę książek znajdziesz tutaj