Как вставить строку в другую строку в C

Мне нужно вставить строку в другую строку в определенном месте. Вот простой пример:

char *a = "Dany S.";
char *b = "My name is *a , I come from ... ";

Итак, в строке b вместо *a я ожидаю, что Dany S.

Как это сделать?

2 ответа

Лучшим/простым способом было бы использовать стандартные соглашения C:

char *a = "Dany S.";
char *b = "My name is %s, I come from...";
char *c = malloc(strlen(a) + strlen(b));
sprintf( c, b, a );

Тогда c содержит вашу новую строку. Когда вы закончите с c, вам нужно освободить память:

free( c );

Если вы хотите использовать c в выводе, который завершает строку, вы можете объявить b как:

char *b = "My name is %s, I come from...\n";


Вы можете использовать printf, то есть:

#include <stdio.h>
char *a = "Dany S.";
char *b = "My name is %s , I come from ... ";
printf(b, a);
</stdio.h>

licensed under cc by-sa 3.0 with attribution.