Ich versuche, eine Zeichenfolge einzufügen, indem Sie eine Teilzeichenfolge in der Zeichenfolge (Original) durch eine neue Zeichenfolge (ToInsert) ersetzen. Der Startparameter ist die Startposition der Teilzeichenfolge, die ich ersetzen möchte. Hinweis: Dies ist Teil eines größeren Programms, aber ich versuche nur, diese Funktion zum Laufen zu bringen.Zeichenfolge (Zeichen für Zeichen) in eine größere Zeichenfolge einfügen
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ROW 5
#define COLUMN 81
void insertString(char original[], int start, int length, char toInsert[]){
char buffer[COLUMN];
int i = 0;
for (i=0; i<strlen(original); ++i){
if (i>=start){
buffer[i] = toInsert[i];
}
else{
buffer[i] = original[i];
}
}
buffer[strlen(buffer)-1] = '\0';
printf("%s\n", buffer);
return;
}
int main()
{
char rep[COLUMN] = "very";
char sub[COLUMN] = "are";
char buf[ROW][COLUMN] = {
{"How are you doing"}
};
int len = strlen(sub);
int start = 4;
insertString(buf[0], start, len, rep);
return 0;
}
Das Problem ist, es druckt nur "Wie".
Ich mag es drucken
auch „Wie sehr Sie tun“, ich habe mit strcpy versucht, aber das gibt nur Fehler/Warnungen (etwas mit Zeigern zu tun, und ich will nicht mit Zeigern befassen, weil Ich habe noch nichts über sie gelernt.)
Nun, es ist schwierig, Strings ohne Zeiger zu verwenden. ;-) –
aha Ich verstehe, aber gibt es Möglichkeit, dieses Problem ohne sie zu beheben? –
Nein, Sie verwenden bereits Zeichenfolgen. Dies ist jedoch hier nicht wichtig. Bitte reduzieren Sie Ihr Problem, ohne Arrays von Arrays zu haben. Sie brauchen das nicht, um Ihr Problem zu beschreiben. http://stackoverflow.com/help/mcve –