한 줄 요약 :
while문을 활용해 포인터가 문자열의 0(null)에 도달할 때까지 한칸씩 밀어준다.
풀이 과정 :
1. char word[101]; // 문자열 생성 및 입력받기
char 문자열은 마지막이 '\0'(null)이므로 (단어길이+1)로 배열크기를 설정한다.
2. char* ptr = word; // 문자열의 메모리 주소값 받기
포인터 변수를 통해 word의 주소값을 입력받는다.
3. int length=0; // 길이를 나타낼 변수 length생성
4. while문을 통해 ptr[length] == 0 이 될 때 까지 포인터를 +1씩 움직인다.
ptr[length] != 0 이면 ptr은 0에서 멈추기 때문에, 멈춘 곳까지 움직인 ptr의 위치가 문자열의 길이가 된다. (배열은 0부터 시작하기때문에 0까지 세면 길이가 맞다.)
<C++ code>
#include <iostream>
using namespace std;
int main()
{
char word[101];
cin >> word;
char* ptr = word;
int length = 0;
while (ptr[length] != 0)
{
length++;
}
cout << length;
}