백준 2743번 : 단어 길이 재기 / C++ 풀이과정

Been·2023년 11월 3일
0

백준

목록 보기
5/23

한 줄 요약 :

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;
}
profile
콧콧코코콧코콧ㅅ

0개의 댓글