[완료] strlen() 질문입니다.

peccavi의 이미지

#include
 
int main()
{
  char a[] = "가나test";
 
  printf("%d\n", strlen(a));
 
  return 0;
}

시스템 로케일 모두 ko_KR.UTF-8 이구요,
ubuntu edgy, gcc 4.1.2 입니다.

결과가 몇으로 나와야 정상일까요?

9가 찍혀야 정상 아닌가요?

혼란스럽습니다. ㅋㅋ -_ -;;

kicom95의 이미지

8 이 정상입니다.

널문자'\0' 는 strlen 에서 계산하지 않습니다.

9를 기대한다면... sizeof 를 쓰세요.

가자 해외로 ~ .. 돈 벌러.

hayarobi의 이미지

소스코드 자체가 utf-8로 저장되었으면 가나test는 총 10바이트겠네요. strlen도 10으로 나와야 정상이겠죠.

=================
잠못자는 한솔아빠

peccavi의 이미지

아참, 8이 나와야 정상이지요..
10이 나와서 질문 올렸습니다.
소스코드 자체의 인코딩이 UTF-8로 되어있어서 10이 나오는거군요..
ㅜ_ㅜ

답변주신분들 감사합니다~

----
jai guru deva om...

----
jai guru deva om...