C-строки являются 0-концевыми. Это означает, что если вы хотите иметь строку длиной n
в C, вам нужно n+1
char
s для нее:
char hello[5] = "hello";
не является строкой, потому что hello
имеет место для 5 char
с и не заканчивается 0
.
char hello[6] = "hello";
является строкой и имеет 6 символов: h
, e
, l
, l
, o
, 0
.
Чтобы иметь возможность использовать функции, связанные со строками в C, вам нужен завершающий 0.
Итак, измените свой код так:
char strRoh[5]={'\0'};
char strTheta[5]={'\0'};
char strTimeStamp[7]={'\0'};
char strNMDump[49]={'\0'};
Обратите внимание, что в C, когда вы делаете:
char hello[] = "hello";
компилятор выполняет подсчет за вас и создает hello
массив размера 6 (один завершающий 0):
printf("%zu\n", sizeof hello);
напечатает 6.