Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zapisywanie stringa

Ostatnio zmodyfikowano 2016-01-07 19:13
Autor Wiadomość
go_no
Temat założony przez niniejszego użytkownika
Zapisywanie stringa
» 2016-01-03 17:53:16
Mam problem z zapisywaniem tekstu z jednego stringa do innego. Np chce zapisać tekst mieszczacy się miedzy * a $ to nowego stringa. Jak to zrobic?
P-142781
mateczek
» 2016-01-03 18:11:22
ręcznie znak po znaku !!!
C/C++
#include <iostream>
#include<string>

using namespace std;

int main()
{
    const string napis { "jakis tekst coś tam sie dzieje *Alicja ma tygrysa$ i dalej" };
    string fragment = "";
    bool startCopy = false;
    for( char znak: napis ) {
        if( znak == '*' ) { startCopy = true; continue; }
        if( znak == '$' ) { startCopy = false; break; };
        if( startCopy ) fragment += znak;
       
    }
    cout << fragment << endl;
}
P-142783
go_no
Temat założony przez niniejszego użytkownika
» 2016-01-03 18:23:25
Rozumiem, dziekuję za pomoc.
A co jeśli nasz tekst byłby "jakis tekst coś tam sie dzieje *Alicja ma tygrysa$ i dalej *Alicja nie ma nic$" i rozdzielić to na dwa stringi?
P-142784
mateczek
» 2016-01-03 18:33:14
C/C++
#include <iostream>
#include<string>
#include<vector>

using namespace std;

int main()
{
    const string napis { "jakis tekst coś tam sie dzieje *Alicja ma tygrysa$ i dalej *Alicja ma dwa tygrysy bo byla promocja :P $" };
    string fragment = "";
    vector < string > strnglist;
    bool copy { false };
    for( char znak: napis ) {
        if( znak == '*' ) { copy = true; continue; }
        if( znak == '$' ) {
            copy = false;
            strnglist.push_back( fragment );
            fragment.clear();
           
        };
        if( copy ) fragment += znak;
       
    }
   
    for( string s: strnglist ) cout << s << endl;
   
}
P-142787
go_no
Temat założony przez niniejszego użytkownika
» 2016-01-03 18:37:07
Próbowałem skompilowac ten kod i niestety mam bład "[Error] range-based 'for' loops are not allowed in C++98 mode" :/
P-142788
mateczek
» 2016-01-03 18:44:10
pętle "for" są w c++ 11 i chyba inicjalizacja za pomocą {} też !!!  jakiego środowiska używasz ?? warto włączyć sobie ten standard (przeważnie opcja w środowisku IDE ). Bo co jak co ale takie "for" to każdemu się spodoba !!!!

http://cpp0x.pl/forum/temat/​?id=10052
P-142791
go_no
Temat założony przez niniejszego użytkownika
» 2016-01-03 20:12:28
dev c++ 5.11

Można jakoś inaczej w takim razie tę pętle for zapisać?
P-142799
mateczek
» 2016-01-03 20:21:12
http://www.cplusplus.com/doc​/tutorial/introduction/devcpp/
standard c++11 włącza się klikiem

pewnie że można inaczej pętle zapisać w std98
C/C++
#include <iostream>
#include<string>
#include<vector>

using namespace std;

int main()
{
    const string napis = "jakis tekst coś tam sie dzieje *Alicja ma tygrysa$ i dalej *Alicja ma dwa tygrysy bo byla promocja :P $";
    string fragment = "";
    vector < string > strnglist;
    bool copy { false };
    for( int i = 0; i < napis.size(); i++ ) {
        if( napis[ i ] == '*' ) { copy = true; continue; }
        if( napis[ i ] == '$' ) {
            copy = false;
            strnglist.push_back( fragment );
            fragment.clear();
           
        };
        if( copy ) fragment += napis[ i ];
       
    }
    for( vector < string >::iterator i = strnglist.begin(); i != strnglist.end(); i++ ) {
        cout <<* i << endl;
    }
   
}
P-142802
« 1 » 2 3 4
  Strona 1 z 4 Następna strona