문자열이 있습니다. char date[16] ;
마지막 두 기호가 0이 되길 원합니다. 시도 :문자열에 0을 어떻게 저장합니까?
date[14] = '0';
date[15] = '0';
date[16] = '\0';
0은 '\ 0'과 동일합니다. 내가 원하는 것을 어떻게 얻을 수 있습니까?
문자열이 있습니다. char date[16] ;
마지막 두 기호가 0이 되길 원합니다. 시도 :문자열에 0을 어떻게 저장합니까?
date[14] = '0';
date[15] = '0';
date[16] = '\0';
0은 '\ 0'과 동일합니다. 내가 원하는 것을 어떻게 얻을 수 있습니까?
, 하지만 당신은 당신이 종료 '\0'
, 당신은 date[16]
에 아무것도 지정하지 않아야합니다 15 0에서 이동을 포함 char date[16]
때문에 인덱스가 있다고 가정 해 .
는 date
의 전체 내용이 무엇인지에 따라,해야 하나 char date[17]
또는
date[13] = '0';
date[14] = '0';
date[15] = '\0';
'0'
은 이 아니고,은 '\0'
과 동일하다.
문자 '0'
의 ASCII 값은 48
입니다.
'\0'
는 합니다 (\
의해) 값 탈출 널 문자 ASCII 값 0
를 지칭한다. date[14]='\0'
가 값0
저장 (및 널 종료 문자열의 끝으로 표시) 반면 그래서
date[14] = '0'
는
0
심볼을 저장한다.
배열이 완전히 인쇄되지 않은 경우 '\0'
가비지가있을 수 있습니다.
전체 배열을 초기화 했습니까?
#include <stdio.h>
int main()
{
char date[] = { [0 ... 14] = '0', [15] = '\0' };
printf("%s\n", date);
return 0;
}
예상대로 출력이 000000000000000
입니다. 주로 당신이 그것을 시도하는 방식을 수정하는 문자 배열에 문자 '0'
저장
이것은 표준 C가 아니므로 권장하지 않습니다. 더 나은 해결책은'char date [16] = { '\ 0'}; memset (날짜, '0', sizeof (날짜) -1); – Lundin
어떤 방언으로 작성 했습니까? – WileTheCoyot
__ISO C99__에서 배열 인덱스 또는 구조체 필드 이름을 지정하여 순서에 관계없이 요소를 지정할 수 있으며 __GNU C__은 __C90__ 모드의 확장자로도 사용할 수 있습니다. 동일한 값으로 요소 범위를 초기화하는 것은 __GNU Extension__이지만 __clang__도이를 지원합니다. [__Source__] (https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html) – Chnossos
당신이 '0'char 또는 0 값을 저장 하시겠습니까? – NirMH
내가 원하는 코드는 – MaMu
입니다. 코드가 작동 중입니다. '0'을 저장하면 배열에 '0'문자가 저장되고 '\ 0'은 끝나는 흔적이됩니다. – NirMH