프로그램에서 문자의 '나열'을 표현한 것
빈 문자열도 문자열이다.
문자열 리터럴의 끝을 나타내기 위해 NULL 문자열을 자동으로 추가
st[5]에 다른 문자넣어도 인식 안됨.
char st[10] = {‘A’, ‘B’, ‘C’, ‘D’, ‘\0’ };
char st[10] = “ABCD”;
❗️틀린 방법 :
char st[10];
st = { ‘A’, ‘B’, ‘C’, ‘D’, ‘\0’ };
st = “ABCD”;
요소의 개수를 생략하고 문자열을 선언한 경우
char st[] = "ABCD";
배열 st의 요소개수는 몇개? -> 5개 (A,B,C,D,null)
c언어에서는 보통 포인터로 문자열을 나타낸다.
char *pt = "12345";
포인터로 표현한 문자열 = 문자열 리터럴을 저장하기 위한 영역 + 포인터가 갖는 메모리 영역
예)
char st[] = “12345”;
/* 배열에 의한 문자열의 크기는 6 bytes */
char *pt = “12345”;
/* 포인터에 의한 문자열의 크기는 sizeof(char *) + 6 bytes */
매개변수 x, y의 자료형은 포인터(s1, s2)의 주소를 받아야 하므로 char **형으로 정의 (포인터를 가리키는 포인터)
문자열 s에서 가장 앞쪽에 있는 c를 찾는다.
문자가 없으면 널 포인터 반환
문자열 s에서 가장 뒤쪽에 있는 c를 찾는다.
문자가 없으면 널 포인터 반환
문자열 s1, s2의 대소관계를 비교
문자열이 같으면 0
s1이 s2보다 크면 양의 정수
s1이 s2보다 작으면 음의 정수
s1, s2의 n번째 문자까지의 대소관계를 비교
문자열이 같으면 0
s1이 s2보다 크면 양의 정수
s1이 s2보다 작으면 음의 정수