빈 문자를 어떻게 표현합니까?
현재 작은 프로그램을 작성하고 있지만 컴파일 할 때이 오류가 계속 발생합니다.
오류 : 빈 문자 상수
유효한 문자를 빈 공간으로 바꾸려고 c[i]=''
했지만 다른 방법으로 표현할 수 없었기 때문이라는 것을 알고 있습니다.
당신은 사용할 수 있습니다 c[i]= '\0'
하거나 c[i] = (char) 0
.
null / 빈 문자는 단순히 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'
캐릭터가 없을 때를 위해, 그렇지 않으면 일반 캐릭터를 갖게 됩니다.
It might be useful to assign a null in a string rather than explicitly making some index the null char '\0'
. I've used this for testing functions that handle strings ensuring they stay within their appropriate bounds.
With:
char test_src[] = "fuu\0foo";
This creates an array of size 8 with values:
{'f', 'u', 'u', '\0', 'f', 'o', 'o', '\0'}
There are two ways to do the same instruction, that is, an empty string. The first way is to allocate an empty string on static memory:
char* my_variable = "";
or, if you want to be explicit:
char my_variable = '\0';
The way posted above is only for a character. And, the second way:
#include <string.h>
char* my_variable = strdup("");
Don't forget to use free() with this one because strdup() use malloc inside.
참고URL : https://stackoverflow.com/questions/18410234/how-does-one-represent-the-empty-char
'Programing' 카테고리의 다른 글
Android의 sqlite 데이터베이스에서 이미지를 저장 (비트 맵 이미지)하고 검색하는 방법은 무엇입니까? (0) | 2020.12.07 |
---|---|
convertPoint를 사용하여 부모 UIView 내부의 상대 위치 가져 오기 (0) | 2020.12.07 |
O (n) 알고리즘이 계산 시간 측면에서 O (n ^ 2)를 초과 할 수 있습니까? (0) | 2020.12.07 |
IllegalStateException : 조각이 이미 탭 호스트 조각에 추가되었습니다. (0) | 2020.12.07 |
Xcode 프로젝트 설정에서 상대 경로를 어떻게 사용합니까? (0) | 2020.12.07 |