Имеется такой код.
text - это текст состоящий из слов, которые разделены разделителями
separator - массив разделителей
num_str количество строк.
bool checkString(char **text, char *separator, int num_str){
int j = 0;
for (int i = 0; i < 1; i++, j = 0){
char *word = (char*)malloc(sizeof(char));
while (text[i][j] != '\0'){
if (!(strchr(separator, text[i][j]) != NULL) && !(text[i][j] == '\0')){
word = (char*)realloc(word, (j + 1) * sizeof(char));
word[j] = text[i][j];
}
else{
word[j] = '\0';
puts(word);
word = NULL;
}
j++;
}
}
return true;
}
Функция должна находить слова и выводить их в консоль, аналог strtok, но она первое слово определяет нормально, а остальные начинает записывать в память не с первой позиции, а с некоторой N - ой позиции, N = Длина_первого_слова + количество_разделителей. То есть, если есть строка:
Mama.Papa,Brat
В памяти будет выглядеть первое слово так:
"Mama"
Второе получится так:
"hhhhhPapa"
Где "hhhhh" это просто что то в памяти, как сделать что бы записывалось в первый символ?