반응형

여러 문자열을 배열에 담아두고 필요할 경우 꺼내서 쓰고 싶은 경우가 있다.

결론부터 말하자면,

이 경우 char * 포인터 변수를 선언하고, 배열 내에 사용할 문자열을 넣으면 된다.

#include <stdio.h>

int main()
{
    // 문자열들을 저장하는 배열 선언, 3개의 문자열 저장
    char* strArr[3] = {"hello world", "nice to meet", "have a good"};

    // 문자열 출력하기
    printf("첫번째 : %s\n", strArr[0]);
    printf("두번째 : %s\n", strArr[1]);
    printf("세번째 : %s\n", strArr[2]);

    return 0;
}
반응형

(결과)

이는 char* 타입으로 선언된 포인터 변수 strArr은 각 문자열의 첫글자에 대한 주소값들을 저장하고 있는 것이다. 즉 각 문자열의 맨앞자리 알파벳의 주소값 3개 {'h'의 주소값, 'n'의 주소값, 'h'의 주소값} 를 담고 있는 것이다.

예를 들면 마치 {0x123A, 0x3B3F, 0x18C6} 과 같이 각 문자열의 시작하는 첫 알파벳의 주소를 담고 있는것과 비슷하다.

 

(이 원리에 대한 자세한 사항은 아래 참고)

https://ansan-survivor.tistory.com/1251

 

[C언어] 포인터로 문자열 선언, 배열 문자열 선언과 차이. (문자열 내부 변경하기)

문자열(string)이란, 알파벳 하나하나가 메모리상의 연속적으로 나열되며, 마지막에는 '\0' (NULL)으로 끝나는 배열이다. 위 그림과 같이 문자열을 만드는 방법은 아래와 같다. char string[11] = "hello worl

ansan-survivor.tistory.com

 

 

 

반응형

+ Recent posts