[c++] zamiana ze słowa na słowo lub słowo przedzielone spacj

Awatar użytkownika
lightinside
Użytkownik
Użytkownik
Posty: 796
Rejestracja: 25 lis 2011, o 22:25
Płeć: Kobieta
Lokalizacja: Poznań/Łódź
Podziękował: 111 razy
Pomógł: 29 razy

[c++] zamiana ze słowa na słowo lub słowo przedzielone spacj

Post autor: lightinside »

spacją;) powinno być

Kod: Zaznacz cały



switch (k)
	{case 1:
		
			Nowy1.open("oda.html",ios::app);
 NewFile.open("index1.html");

	cout<<"Podaj imię";
	cin>>imie;
	cout<<"Podaj nazwisko";
	cin>>nazwisko;
	cout<<"Podaj rok urodzenia";
	cin>>rok_urodzenia;
	cout<<"Twoje stanowisko to?";
	cin>>stanowisko;
	cout<<"Jaka jest data ważnosci?";
	cin>>data;
	cout<<"Jaka jest nazwa firmy?";
	cin>>nazwa;
	while(getline(NewFile,contain_of_file))
  {
  	
		   if((position=contain_of_file.find("A1"))!=string::npos) contain_of_file=contain_of_file.replace(position,5,imie);
		   if((position=contain_of_file.find("B1"))!=string::npos) contain_of_file=contain_of_file.replace(position,10,nazwisko);
		   if((position=contain_of_file.find("C1"))!=string::npos) contain_of_file=contain_of_file.replace(position,10,rok_urodzenia);
		   if((position=contain_of_file.find("D1"))!=string::npos) contain_of_file=contain_of_file.replace(position,10,stanowisko);
		   if((position=contain_of_file.find("E1"))!=string::npos) contain_of_file=contain_of_file.replace(position,10,data);
		   if((position=contain_of_file.find("F1"))!=string::npos) contain_of_file=contain_of_file.replace(position,10,nazwa);
		   Nowy1<<contain_of_file<<endl;
    
	}

	

Jak zmienić mój kod, aby zapisywał w odpowiednim miejscu (zamieniał) dwa słowa, jeśli dwa słowa poda użytkownik? Aktualnie to on to pomija i chyba zapisuje jako następne.

Chce pozamieniać A1...F1 na słowa pobrane od użytkownika
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[c++] zamiana ze słowa na słowo lub słowo przedzielone spacj

Post autor: jarzabek89 »

Kod: Zaznacz cały

  position=contain_of_file.find("A1");
      if( position != - 1 )
        {
           contain_of_file.replace( position,2 , imie );
        }

Analogicznie reszta, w Twoim kodzie za bardzo nie wiem skąd bierzesz liczby jako drugi argument funkcji replace.

Do tej części kodu jeszcze się przyczepię:

Kod: Zaznacz cały

contain_of_file=contain_of_file.replace(position,5,imie);
wystarczy samo:

Kod: Zaznacz cały

contain_of_file.replace(position,5,imie);
Awatar użytkownika
lightinside
Użytkownik
Użytkownik
Posty: 796
Rejestracja: 25 lis 2011, o 22:25
Płeć: Kobieta
Lokalizacja: Poznań/Łódź
Podziękował: 111 razy
Pomógł: 29 razy

[c++] zamiana ze słowa na słowo lub słowo przedzielone spacj

Post autor: lightinside »

jarzabek89 pisze: w Twoim kodzie za bardzo nie wiem skąd bierzesz liczby jako drugi argument funkcji replace.
Mówiąc szczerze to strzelam tak aby mi się wynik nie rozjezdzał, jak przykładowo wyraz miał 7 liter to bywało że wyraz "zjadł" część div-a czy coś... zwiększyłam tu liczbę i dodałam dużo spacji w kodzie.

Zmieniłam Mój kod na Twój i nic to nie zmienia w wyniku nadal mam tylko jeden wyraz mimo że wpisuje dwa wyrazy.
ODPOWIEDZ