buchstabe aus einem char* löschen



  • Hallo,

    ich habe ein char-array, und möchte mit einer funktionen einen buchstabe herauslöschen...

    doch wie??

    void SerialString::Delete(int pos)
    {
    	   char* tempbefore = m_text;   //das funktioniert ja
    	   char* tempafter = new char[pos];
    	   int j=0;
    	   for(int i=0;i<StringLeng;i++)
    		{
    		*tempafter=*tempbefore;//alles probiert, mit [] usw....
    
    		cout<<*tempbefore<<*tempafter<<endl; //hier zeigt er immer das richtige an		tempbefore++;
    		tempafter++;
    		}
    	   cout<<"Debugausgabe: "<<*tempafter;  //hier kommt nur salat raus..., wie kopier ich denn chars verdammt? 
    
    }
    


  • Du musst einfach alle Buchstaben dahinter in einer Schleife eine Stelle weiter nach vorne kopieren.

    Gruß



  • Erstmal solltest du dir mal die std::string ansehen, die ist wesentlich einfacher zu nutzen als blanke char-Pointer. Und zweitens werden char-Arrays mittels strcpy(), memcpy() oder memmove() verschoben (welches du nimmst, hängt von der Anwendung ab - in deinem Fall wäre memmove() wohl am sichersten:

    void Delete(int pos)
    {
      char* target=m_data+pos;
      int len=m_size-pos;
      memmove(target,target+1,len);
    }
    

Anmelden zum Antworten