Строки в C
должны определяться NULL
, то есть иметь символ \0
в конце.Например, если у вас есть два слова, разделенные пробелом, например:
char *str1 = "fat chance";
Вы можете «разделить» их, заменив пробел на \0
:
str1[3] = '\0';
И затем установите str2
, чтобы указать после \0
:
char *str2 = str1 + 4;
Однако, если вам нужно что-то разделить, где нет удобного места для вставки терминатора, тогда вам нужноскопировать вторую часть строки в другом месте.Самый простой способ сделать это (если вы не возражаете против необходимости free()
позже), это использовать strdup()
и поместить терминатор NULL
в str1
после этого:
char *str2 = strdup(str1 + 4);
str1[4] = '\0';