#include <stdio.h>
unsigned int GetLength(const wchar_t* _pstr);
/* const wchar_t* _pstr은 값 자체
wchar_t* const_pstr은 포인터 변수 자체 */
int main(void)
{
wchar_t NAME[10] = L"한글한글";
int iLen = GetLength(NAME);
printf("%d", iLen);
return 0;
}
unsigned int GetLength(const wchar_t* _pstr)
{
int i = 0;
int a = 1;
while (a != 0)
{
a = _pstr[i];
i++;
}
return i - 1;
}
#include <stdio.h>
unsigned int GetLength(const wchar_t* _pstr);
/* const wchar_t* _pstr은 값 자체
wchar_t* const_pstr은 포인터 변수 자체 */
int main(void)
{
wchar_t NAME[10] = L"한글한글";
int iLen = GetLength(NAME);
printf("%d", iLen);
return 0;
}
unsigned int GetLength(const wchar_t* _pstr)
{
int i = 0;
while (true)
{
wchar_t c = *(_pstr + i);
if ('\0' == c)
{
// break쓰고 마지막에 return i; 해도 가능
return i;
}
/* 더 간단하게 가면
while ('\0' != _pstr[i])
{
++i;
}
return i;
*/
// 근데 의도를 파악하기 힘들수 있으므로 무조건 짧다고 좋은게 아님
++i;
}
}
c == '\0'`이 아니라 '\0' == c로 쓰는 이유는 앞에 상수가 있어야 만약 == 대신 = 를 쓰는 오류가 나와도 컴파일 단계에서 찾을 수 있기 때문
왼쪽에 r-value를 쓰는 습관을 들이면 좋다!
#include <wchar.h>
안의 wcscat_s() 함수 <-- 이것도 함수가 인자로 뭘 받는지 파악하면서 쓰면 됨