Я пытаюсь разрезать строку и скопировать эту новую разрезанную часть.Нарезка и копирование строки в C
char* makeWord(char *c, int j, int i){
char *s;
s = malloc(sizeof(char)*i-j)
int k;
for (k = 0; k < i - j; k++){
s[k] = c[j+k];
}
printf("%s ", s);
return s;
}
Я пытаюсь вернуть указатель, который копирует соответствующую часть исходной строки.
Печатает странные символы в конце.
Пример:
c[] = "hello darkness my old friend"
makeWord(c, 0, 5); makeWord(c, 6,14); makeWord(c, 15, 17); makeWord(c, 18, 21);
Формирует: привет darknessmt_'3 MyP старого friendP
Спасибо, извините за вопрос новичка.
Что строки заканчиваются? У вашего 's' чего-то не хватает. – user2357112
'sizeof (char)' избыточно, поскольку он всегда один –
рассматривает использование более значимых имен переменных, чем 'i' и' j' –