Dies ist in c nicht möglich, da eine Zeichenfolge ein Teil des zugewiesenen Speichers ist, der Zeichen sequenziell enthält. Wenn Sie also einen String oder Char in einem bestimmten Index hinzufügen möchten, müssen Sie mehr Speicher zuweisen (falls Sie Speicher genau der Größe der Zeichenkette + Null-Endzeichen zugewiesen haben und alle Zeichen bei Indizes verschieben, die größer sind als das von uns hinzugefügte Zeichen/String.
Die einfachste Methode besteht darin, einen neuen Speicherbereich zuzuweisen, der groß genug ist, um die Zeichenfolge aufzunehmen, und Byte für Byte zu kopieren. Wenn Sie ein '/' erreichen, fügen Sie einfach ein zusätzliches '/' hinzu Zielzeichenfolge
Auch, wie einige erwähnt haben, ist dies nicht gültig c. Wenn Sie ein Zeichen deklarieren, weisen Sie grundsätzlich ein Speichersegment mit der Größe eines Bytes zu, das nicht ausreicht, um eine ganze Zeichenfolge zu enthalten (eine Zeichenfolge, die größer als ein Zeichen ist). Wenn es ein Array ist, können Sie nicht initialisieren Auf diese Weise wäre die richtige Vorgehensweise char *c = "C:/...";
Zuweisen eines größeren Speichersegments und Kopieren aus dem Zeichenzeiger.
Dies ist nicht gültig C. –
Kompilieren Sie Ihren Code, um zu überprüfen, ob er gültig ist - aus mindestens zwei Gründen nicht. – chux
@Alter Mann 'char a [64] =" C: \ Benutzer \ Ruby \ Desktop "; 'ist kein gültiger C-Code. (interessante Escape-Sequenzen), die zur Problematik von OP beitragen können. – chux