Я с трудом знаю, с чего начать: -)
В C строки - это просто char
массивы, которые по соглашению заканчиваются байтом NUL.С точки зрения динамического управления памятью, вы можете просто malloc
пространство для них (включая дополнительный байт).Управление памятью при изменении строк - это ваша ответственность:
char *s = strdup ("Hello");
char *s2 = malloc (strlen (s) + 6);
strcpy (s2, s);
strcat (s2, ", Pax");
free (s);
s = s2;
В C ++ строки (std::string
) - это объекты со всем связанным автоматизированным управлением и контролем памяти, что делает их намного безопаснееи проще в использовании, особенно для новичка.Для динамического размещения используйте что-то вроде:
std::string s = "Hello";
s += ", Pax";
Я знаю, какой Я бы предпочел бы использовать, последний.Вы можете (если он вам нужен) всегда создавать строку C из std::string
, используя метод c_str()
.