c 문자열 사용

떵떵·2022년 6월 24일
0

c언어에는 문자(char)자료형은 있지만 문자열(string)은 없다.

char 자료형의 크기는 1byte이므로 문자 하나밖에 저장할 수 없기때문에 이것을 배열처럼 나열하여 문자열을 사용한다. 이런 이유로 문자열을 사용하는 2가지 방식이 있다.

  1. 배열 형식 문자열
  2. 포인터 형식 문자열

!중요!

  • 문자열 끝에는 항상 NULL(/0)이 붙고 문자열의 '끝'을 나타낸다.
  • 문자: 작은따옴표''를 문자에 싼다.
  • 문자열: 큰따옴표""를 문자열에 감싼다.

배열 형식 문자열

char 배열이름[크기] = "문자열";
char s1[6] = "Hello";

문자열 배열의 크기를 지정할 때 "문자열+NULL"까지 생각해주어야한다.
"Hello"같은 경우 5문자지만 NULL문자의 공간을 생각해서 6개를 지정해주어야 한다.

char s1[] = "Hello"; 처럼 문자열을 바로 초기화 한다면
크기를 생략해서 선언할 수 있다.!!

배열 형식 문자열은 배열 선언할 때 즉시 문자열로 초기화를 해야한다.
안그러면 인덱스별 문자를 할당하는 방법으로 해야됨..!

배열형식 문자열은 배열자체에 문자들이 복사되어 있는 형식이기 때문에
인덱스로 접근하여 변경할 수 있다.

s1[0] = 'A';

printf("%s\n", s1);
>>> Aello

포인터 형식 문자열

char *포인터이름

char a = 'a';

char *s1 = "Hello";

char *s1는 변수에 직접 저장하지 않고 포인터처럼 문자열의 메모리 주소를 가지고 있다.

주의

문자열 리터럴은 읽기전용이라서

s1[0] = 'a'; 처럼 인덱스로 접근하여 변경하면 오류가 난다.

0개의 댓글