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); }