#include int main() { char a[] = "가나test"; printf("%d\n", strlen(a)); return 0; }
시스템 로케일 모두 ko_KR.UTF-8 이구요, ubuntu edgy, gcc 4.1.2 입니다.
결과가 몇으로 나와야 정상일까요?
9가 찍혀야 정상 아닌가요?
혼란스럽습니다. ㅋㅋ -_ -;;
8 이 정상입니다.
널문자'\0' 는 strlen 에서 계산하지 않습니다.
9를 기대한다면... sizeof 를 쓰세요.
가자 해외로 ~ .. 돈 벌러.
소스코드 자체가 utf-8로 저장되었으면 가나test는 총 10바이트겠네요. strlen도 10으로 나와야 정상이겠죠.
================= 잠못자는 한솔아빠
아참, 8이 나와야 정상이지요.. 10이 나와서 질문 올렸습니다. 소스코드 자체의 인코딩이 UTF-8로 되어있어서 10이 나오는거군요.. ㅜ_ㅜ
답변주신분들 감사합니다~
---- jai guru deva om...
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
8 이
8 이 정상입니다.
널문자'\0' 는 strlen 에서 계산하지 않습니다.
9를 기대한다면... sizeof 를 쓰세요.
가자 해외로 ~ .. 돈 벌러.
UTF-8은 한글이 3바이트입니다.
소스코드 자체가 utf-8로 저장되었으면 가나test는 총 10바이트겠네요. strlen도 10으로 나와야 정상이겠죠.
=================
잠못자는 한솔아빠
아참, 8이 나와야
아참, 8이 나와야 정상이지요..
10이 나와서 질문 올렸습니다.
소스코드 자체의 인코딩이 UTF-8로 되어있어서 10이 나오는거군요..
ㅜ_ㅜ
답변주신분들 감사합니다~
----
jai guru deva om...
----
jai guru deva om...
댓글 달기