Я совершенно новичок в C.
Я пытаюсь сделать простую функцию C, которая будет разбивать строку (массив символов).
Следующий код не работает должным образом, потому что я не знаю, как завершить массив символов в массиве. Есть указатели на символы, передаваемые в функции. Один, содержащий исходный константный массив char, который нужно разделить, и другой указатель - это многомерный массив, который будет хранить каждую разделенную часть в отдельном массиве char.
Выполнение функции, с которой я столкнулся, очевидно, вызвало много шума, в основном из-за недостатка опыта в Си.
Я думаю, что в этой функции я не могу завершить отдельный массив с \ 0.
Вот код:
void splitNameCode(char *code, char *output);
void splitNameCode(char *code, char *output){
int OS = 0; //output string number
int loop;
size_t s = 1;
for (loop = 0; code[loop]; loop++){
if (code[loop] == ':'){
output[OS] = '\0'; // I want to terminate each array in the array
OS ++;
}else {
if (!output[OS]) {
strncpy(&output[OS], &code[loop], s);
}else {
strncat(&output[OS], &code[loop], s);
}
}
}
}
int main (int argc, const char * argv[]) {
char output[3][15];
char str[] = "andy:james:john:amy";
splitNameCode(str, *output);
for (int loop = 0; loop<4; loop++) {
printf("%s\n", output[loop]);
}
return 0;
}