코딩/기타

[C] 문자열 끝까지 반복문을 돌리는 법

rivermoon 2022. 10. 3. 18:37

크게 두 가지 방법이 있습니다.

 

I. NUL 문자를 읽기 전까지 반복하기

c언어에서 문자열을 저장하게 되는 경우를 생각해 봅시다.

str[] = "Hello"와 같이 저장할 때, 메모리 공간에는 

str[0] str[1] str[2] str[3] str[4] str[5]
H e l l o \0

과 같이 저장됩니다. 이때 맨 끝에 있는 \0이 널 문자로, 문자열의 끝을 나타내는 특수 문자로 쓰입니다.

문자열의 끝을 나타내는 문자 전의 인덱스까지만 반복하도록 코드를 작성하면 됩니다.

 

int i = 0;
char str[10] = "Hello"
while (str[i] != NULL){
	// blah blah blah
    i++;
}

 

 

출처 : http://www.ktword.co.kr/test/view/view.php?m_temp1=5946

 

II. strlen 함수 이용하기

string.h 헤더 파일을 불러와 사용할 수 있는 strlen 함수는, 문자열의 글자 수를 정수형으로 불러올 수 있습니다.

사용법 또한 간단하여, for 문 기준 이렇게 사용하면 됩니다.

#include <stdio.h>
#include <string.h>

int main(){
    char str[10] = "Hello"
    int len = strlen(str) // len = 5
    
    for (int i = 0; i < len; i++){
    	// blah blah blah
    }
}