В C тип char
содержит один символ, а не строку.char c[100];
не выделяет char
длины 100, он выделяет массив из 100 последовательных char
с, каждый длиной в один байт, и этот массив может содержатьстрока.
Итак, вы хотите заполнить массив char
s теми же значениями char
, которые находятся в месте, указанном char *
.Для этого вы можете использовать strncpy()
или любую из нескольких других функций:
strncpy(c,field,100); /* copy up to 100 chars from field to c */
c[99] = '\0'; /* ..and make sure the last char in c is '\0' */
.. или использовать strcpy()
, поскольку вы знаете, что строка будет соответствовать c
(лучше в этом случае):
strcpy(c,field);
.. или:
snprintf(c,100,"%s",field);