Итак, у меня есть строка, которая будет иметь следующий грубый формат: string # more than one string here
.
Что я хочу сделать, так это удалить все после #
. Как бы я это сделал? Кроме того, что, если я просто хочу сохранить исходную строку и взять все после пробела и #
?
У меня есть следующий код, но очевидно, что добавление чего-либо в строку NULL
не работает должным образом:
char *inst_ptr
содержит всю строку.
char *lbl = NULL;
int len = 0;
size_t inst_len = strlen(inst_ptr);
for (int t = 0; t < inst_len; t++) {
if (inst_ptr[t] == '#')
break;
else {
printf("len %d\n", len);
lbl[len] = inst_ptr[t];
lbl[len+1] = '\0';
len = strlen(lbl);
}
}
EDIT:
Предположим, у меня есть следующая строка:
loop # hello world!
Я просто хочу извлечь loop
в другую строку. То, что я делаю выше, это наличие lbl
в виде строки NULL и выполнение цикла по исходной строке. Пока символ не #
, я просто «добавляю» символ с нулевым терминатором, как показано выше.