본문 바로가기
C언어

[C언어] 문자열, string 사용하는 방법

디지털노마드 2023. 1. 31.
반응형

 

embedded C 를 하다보면 자연스럽게 하드코딩으로

시스템의 정보를 입력하는 문자열을 만들게 된다. 

 

두가지 방법으로 할 수 있고, 때에 맞추어 적절히 사용하면 된다. 

 

char string1[] = {'A', 'B', 'C', 'D', '\0'};
char* string2 = "EFGH";

 

첫번째 방법은 배열로 만들것이고 (마지막에 '\0' 가 꼭 들어가야 한다. 문자열의 마지막이라는 의미)

두번째 방법은 사용하기 쉬운 문법이지만, const 상수 처리가 되어 이후에 수정이 불가능 하다. 

 

printf("%s\n", string1); // ABCD
printf("%s\n", string2); // EFGH
printf("%c\n", string1[1]); //B
printf("%c\n", string2[1]); //F

 

수정이 안될뿐 char 로의 접근은 둘다 동일하다. 

 

string1[1] = 'Z';
printf("%s\n", string1);
string2[1] = 'Z'; //error
print("%s\n", string2);

 

string2 는 const 상수 취급을 받기 때문에

배열로서 각 자리의 글자를 바꿀 수 없다. 에러가 난다. 

 

[Full Code]

#include <stdio.h>

void main(){

    printf("start of program\n");

    char string1[] = {'A', 'B', 'C', 'D', '\0'};
    char* string2 = "EFGH";

    printf("%s\n", string1); // ABCD
    printf("%s\n", string2); // EFGH

    printf("%c\n", string1[1]); //B
    printf("%c\n", string2[1]); //F

    string1[1] = 'Z';
    printf("%s\n", string1);

    // string2[1] = 'Z'; //error
    // print("%s\n", string2);

    printf("end of program\n");

}

 

 

반응형

댓글