Итак, я написал следующую функцию на C:
void splitNameAndDate(char *p, char *n, char *d) {
int d_index = 0, n_index = 0;
for (int i = 0; i < strlen(p); i++) {
if(p[i] >= '0' && p[i] <= '9') {
d[date_index++] = p[i];
} else {
n[name_index++] = p[i];
}
}
}
Эта функция получает массив (представляющий человека), который выглядит следующим образом: adam1502
(имя и дата) и разбивает его на две частимассивы - имя и дата.Я инициализирую массивы следующим образом:
char date[5],name[50],person[50];
Если, например, массив p
имеет Michelle1001
, то массив n
по некоторым причинам имеет Michelle\023
.Не могу понять, почему это ставит \023
конец.Другие тесты работают нормально, хотя.
PS Я использую отладчик Clion, чтобы посмотреть, что содержит массив.
** EDIT - могу ли я использовать следующий код в конце?
date[date_index] = '\0';
name[name_index] = '\0';