char array buchstaben mit 2 buchstaben ersetzen



  • char arry[] schrieb:

    ...std::string darf ich nicht verwenden.

    Aufgabe: "2 Ohrfeigen für den Aufgabensteller !"
    😉

    Gruß,

    Simon2.



  • Naja ich versteh schon was da abläuft, ist ja klar. Aber copy_n ist nicht im algorithm header drinne 😉
    Ich habs sicherlich auch nicht einfach so kopiert 😉



  • Sorry, was ich vergessen habe:
    Warum übergibt man

    char const *text
    

    und

    char const *rep
    

    . Warum nicht ohne Const?



  • Damit soll sichergestellt werden, dass text bzw. repl nicht verändert werden.
    Ich weiss nicht genau, was einige der Funktionen ( copy etc.) machen, eventuell verlangen sie auch konstante Parameter.



  • Simon2 schrieb:

    char arry[] schrieb:

    ...std::string darf ich nicht verwenden.

    Aufgabe: "2 Ohrfeigen für den Aufgabensteller !"
    😉

    Gruß,

    Simon2.

    Hör auf zu labern!

    Gruß!



  • mhhh ok.
    Da ich n_copy wohl nicht habe... Könnte jemand einen Denkanstoß geben wie es noch zu realisieren wäre?



  • char array[] schrieb:

    mhhh ok.
    Da ich n_copy wohl nicht habe... Könnte jemand einen Denkanstoß geben wie es noch zu realisieren wäre?

    Das könnte man z.B. mit einem vector<char> realisieren!
    😉



  • ich bekomme so komische fehler, wenn ich das mache:

    std::vector<char*> text;
    	std::vector<int>::iterator it;
    	it = text.begin();
    

    Fehler:

    error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::_Vector_iterator<_Ty,_Alloc>' akzeptiert (oder keine geeignete Konvertierung möglich)
    

    Genauso bei for-Schleifen:

    error C2664: 'std::_Vector_iterator<_Ty,_Alloc> std::vector<_Ty>::erase(std::_Vector_const_iterator<_Ty,_Alloc>)': Konvertierung des Parameters 1 von 'std::_Vector_iterator<_Ty,_Alloc>' in 'std::_Vector_const_iterator<_Ty,_Alloc>' nicht möglich
    

    und mehr Fehler davon, wenn ich so eine for-schleife machen möchte:

    for (it=text.begin(); it<text.end(); it++)
    {...}
    


  • char array[] schrieb:

    mhhh ok.
    Da ich n_copy wohl nicht habe... Könnte jemand einen Denkanstoß geben wie es noch zu realisieren wäre?

    Merde, ich sehe gerade, dass das nicht Teil des Standards ist. Sorry. Man kann das ganze aber durch 'copy' ersetzen.

    … oder Du schreibst es Dir selbst:

    template <typename TIterIn, typename TSize, typename TIterOut>
    TIterOut copy_n(TIterIn begin, TSize count, TIterOut result) {
        while (count-- > 0)
            *result++ = *begin++;
        return result;
    }
    


  • vector<char> nicht vector<char*> !
    In 'ner Schleife das Ursprungsarray buchstabenweise mit push_back(const char&) verändert in den vector<char> einfügen.
    Dann holste Dir den Zeiger auf das erste Element des vectors (&front()), der erlaubt Dir Zugriff wie bei einem C-Array (char*).
    😉



  • Danke, aber es sind immernoch die selben Fehler 😉

    @Konrad Rudolph: Danke, ich muss jetzt nurnoch herausgfinden was genau an Deiner Funktion nicht geht 😉



  • char array[] schrieb:

    Danke, aber es sind immernoch die selben Fehler 😉

    @Konrad Rudolph: Danke, ich muss jetzt nurnoch herausgfinden was genau an Deiner Funktion nicht geht 😉

    #include <iostream>
    #include <vector>
    
    int main()
    {
    	const char verdopple   = 'l';
    	const char marray[] = "Helo Wor.d!";
    	std::vector<char> a;
    
    	for (int i= 0; i < sizeof marray; i++)
    	{	
    		a.push_back(marray[i]);
    		if (marray[i] == verdopple)
    			a.push_back(marray[i]);
    	}
    	std::cout << &a.front() << std::endl;
    }
    

    :p



  • Umhergelaber schrieb:

    ...
    Hör auf zu labern!

    Gruß!

    Mach's vor - wie geht denn das ?

    Gruß!



  • Umhergelaber schrieb:

    Simon2 schrieb:

    char arry[] schrieb:

    ...std::string darf ich nicht verwenden.

    Aufgabe: "2 Ohrfeigen für den Aufgabensteller !"
    😉

    Gruß,

    Simon2.

    Hör auf zu labern!

    Gruß!

    👍



  • realcoder schrieb:

    ...👍

    Du hast doch nur einen zu kleinen Penis, um selbst etwas zu schreiben.

    Hör auf zu labern!

    Gruß!


Anmelden zum Antworten