현재 작은 프로그램을 작성하고 있지만 컴파일 할 때이 오류가 계속 발생합니다.
오류 : 빈 문자 상수
유효한 문자를 빈 공간으로 바꾸려고 c[i]=''
했지만 다른 방법으로 표현할 수 없었기 때문이라는 것을 알고 있습니다.
답변
당신은 사용할 수 있습니다 c[i]= '\0'
하거나 c[i] = (char) 0
.
널 / 빈 문자는 단순히 0의 값이지만 이스케이프 된 0이있는 문자로 표시 될 수도 있습니다.
답변
캐릭터에 “문자 없음”을 저장할 수 없습니다. 말이 안됩니다.
대안으로 당신에게 특별한 의미를 가진 문자 (예 : null char)를 저장 '\0'
하고 이것을 특별히 취급 할 수 있습니다.
답변
빈 공간 문자는입니다 ' '
. null을 찾고 있다면 '\0'
.
답변
예, c[i]=''
유효한 코드가 아닙니다. '
'
예를 들어 c[i] = 'A';
char 사이에 문자 상수를 괄호로 묶습니다 A
. 하지만 사이에 문자를 쓰지 않습니다 ''
.
빈 공간은 아무것도 아닙니다. 공간을 할당하려면 다음을 수행하십시오.
c[i] = ' ';
// ^ space
할당하려면 nul char
다음을 수행하십시오.
c[i] = '\0';
// ^ null symbol
예 : c[]
문자열 이 있는 경우 문자열 (nul로 \0
끝나는 char 배열)이 있다고 가정 합니다. 예를 들면 :
char c[10] = {'a', '2', 'c', '\0'};
그리고 두 번째 문자를 공백으로 바꿉니다 .
c[1] = ' ';
다음과 같이 printf를 사용하여 인쇄하는 경우 :
printf("\n c: %s", c);
출력은 다음과 같습니다.
c: a c
// ^ space printed
그리고 두 번째 문자를 ‘\ 0’으로 바꿉니다 .
c[1] = '\0';
출력은 다음과 같습니다.
c: a
문자열이 \0
.
답변
“빈 문자”와 같은 것은 없습니다 ''
.
공백 문자가 필요한 경우 공백 : c[i] = ' '
또는 해당 ASCII 8 진수 :으로 표시 할 수 있습니다 c[i] = '\040'
. NUL 문자가 필요한 경우 c[i] = '\0'
.
답변
값이 존재하지 않는다는 사실을 나타 내기 위해 두 가지 선택이 있습니다.
1) 전체 char
범위가 의미 있고 값을 예약 할 수없는 경우 다음 char*
대신 사용하십시오 char
.
char** c = new char*[N];
c[0] = NULL; // no character
*c[1] = ' '; // ordinary character
*c[2] = 'a'; // ordinary character
*c[3] = '\0' // zero-code character
그런 다음 c[i] == NULL
문자가 없을 때를 사용하고 그렇지 않으면 *c[i]
일반 문자를 사용합니다.
2)에서 표현할 수있는 일부 값이 필요하지 않은 경우 char
값이 존재하지 않음을 나타 내기 위해 하나를 예약하십시오 (예 : '\0'
문자).
char* c = new char[N];
c[0] = '\0'; // no character
c[1] = ' '; // ordinary character
c[2] = 'a'; // ordinary character
그러면 c[i] == '\0'
캐릭터가 없을 때를 위해, 그렇지 않으면 일반 캐릭터를 갖게 됩니다.
답변
동일한 명령을 수행하는 두 가지 방법, 즉 빈 문자열이 있습니다. 첫 번째 방법은 정적 메모리에 빈 문자열을 할당하는 것입니다.
char* my_variable = "";
또는 명시 적으로 표현하려는 경우 :
char my_variable = '\0';
위에 게시 된 방법은 캐릭터 전용입니다. 그리고 두 번째 방법 :
#include <string.h>
char* my_variable = strdup("");
strdup () 은 내부에서 malloc을 사용 하기 때문에 free () 를 사용하는 것을 잊지 마십시오 .