|
아 그렇군요. 감사합니다.
Lyn 님이 쓰신 글 :
: C++Builder 의 AnsiString은 한가지 특성을 가지고 있습니다..
:
: 첫번째로 숫자를 그냥 대입이 가능하다는것.
: AnsiString A = 1;
: 이러면 A는 "1" 이 됩니다
:
: 그리고 C++에서의 NULL은 Pointer가 아니라 그냥 숫자 0입니다. nullptr 키워드가 아직 빌더엔 추가되지 않았죠
: 그럼 A == NULL 이라고 비교하면 A 가 빈문자열인지 비교하는게 아니라 "0" 인지 아닌지 비교하게 됩니다.
:
: 빈문자인지 비교를 원하면 Temp[i] == "" 로 쓰셔야합니다
:
: 축구 님이 쓰신 글 :
: : 엄청 궁금한 점이 있는데요
: :
: : 헤더에
: : AnsiString Temp[100];
: : int count;
: :
: : 이러면 초기화 따로 필요없이 쓸수 있잖아요
: :
: : 그래서 for문을 돌렸습니다.
: : count = 0;
: : count++;
: :
: : for(int i = 0, i < count; i++)
: : {
: : if(Temp[i] == NULL)
: : {
: : Temp[i] = "ABCED";
: : }
: : }
: :
: : 이랬는데 Temp가 자동 초기화 되지니까 0번째값이 NULL 맞는데 왜 저 if문을 그냥 지나갈까요?
: :
: : 진짜 이해가 안되요 ㅠ
: :
: :
: : 아제나 님이 쓰신 글 :
: : : AnsiString은 char 처럼 자료형(data type)이 아니라 오브젝트(object)입니다.
: : :
: : : 그러니까 ㅠㅠ
: : :
: : : 쓰신 문장은 완전히 잘못되었습니다.
: : :
: : : AnsiString 사용법부터 차근차근 다시 봐주세요~
: : :
: : :
: : :
: : :
: : :
: : : 축구 님이 쓰신 글 :
: : : : 헤더에
: : : : AnsiString Temp[100];
: : : : AnsiString Str[100];
: : : :
: : : : 2개를 선언하고 본문에
: : : :
: : : : memset(Temp, NULL, Temp->Length());
: : : : memset(Str, NULL, Str->Length());
: : : : 초기화 해주고
: : : :
: : : : Temp[0] = "test";
: : : :
: : : : for(int i = 0; i < Temp->Length(); i++)
: : : : {
: : : : if(Temp[i] != NULL)
: : : : {
: : : : Str[i] = Temp[i];
: : : : }else if(Temp[i] == NULL){
: : : : continue;
: : : : }
: : : : }
: : : :
: : : : 라고 했는데 한번if첫번째 문이고 2번째 부터는 else if 돌아야 정상아닌가여? 브레이크 포인트 걸어서 보니까 4번인가
: : : :
: : : : 정도 돌면서 if 첫번째 문을 실행하던데 왜그런거죠?
|