Buchstaben bei einem char* anhängen
-
Wie hänge ich ohne die Standartfunktionen wie sprintf einen Buchstaben an ein char* an?
-
Gar nicht. char*-Strings haben eine feste Größe.
-
-
RobthaR schrieb:
Wie hänge ich ohne die Standartfunktionen wie sprintf einen Buchstaben an ein char* an?
Da dies hier ein C++-Forum ist: benutz die Klasse std::string und die Standardfunktionen.
Ansonsten wird es aufwendig:
size_t string_length(char const* str) { size_t len = 0; for (; *str != '\0'; ++str, ++len); return len; } char* append(char const* str, char ch) { size_t len = string_length(str); char* new_str = new char[len + 2]; for (char* i = new_str; *str != '\0'; ++i, ++str) *i = *str; new_str[len] = ch; new_str[len + 1] = 0; return new_str; } int main() { using namespace std; char text[] = "Hallo"; cout << string_length(text) << endl; char* new_text = append(text, 's'); cout << new_text << endl; cout << string_length(new_text) << endl; delete [] new_text; }(Ungetestet!)
-
Konrad Rudolph schrieb:
Ansonsten wird es aufwendig:
gar nicht. geht auch einfach:
void append (char *str, char c) { while (*str) str++; *str++ = c; *str = 0; }musste nur sicherstellen dass noch platz für das zeichen da ist

-
net schrieb:
Konrad Rudolph schrieb:
Ansonsten wird es aufwendig:
gar nicht. geht auch einfach:
[...]
musste nur sicherstellen dass noch platz für das zeichen da ist
Eben. Das ist ja das aufwendige daran.