자료구조
문자열 - 1
blesslee
2022. 11. 17. 10:27
반응형
C언어에서 문자열은 char 타입의 배열의 각 칸마다 문자를 저장하여 사용한다.
문자열의 마지막에는 '\0' 의 null character 로 문자열의 끝을 표시해야한다.
해당 값이 들어가야 하므로 실제 저장할 문자열보다 배열의 크기를 1크게 생성하여야 한다.
만약 str[5] 에 길이 5의 문자열을 저장한다면 출력시에 문제가 생긴다.
//str0.c #include <stdio.h> #include <string.h> int main() { char word[5]; word[0] = 'h'; word[1] = 'e'; word[2] = 'l'; word[3] = 'l'; word[4] = 'a'; printf("%s \n", word); } |
//str0 실행결과![]() |
C 언어에서는 문자열을 저장하는 3가지 방법이 있다.
첫번째 방법은 위의 예제처럼 특정 크기의 배열을 생성한 후 각 배열에 문자를 넣어 문자열을 저장하는 방법.
두번째 방법은
char str[] = "hello";
위와 같이 배열의 크기를 지정하지 않고 저장할 문자열을 입력하는 방식이다.
C 언어 내부적으로 배열의 초기화를 진행하여 문자열을 저장한다.
세번째 방법은
char *str = "hello";
위와 같이 저장할 경우에는 해당 문자열의 수정이 불가능하다.
(string literal)
//str1.c #include <stdio.h> #include <string.h> int main() { char word[10]; word[0] = 'h'; word[1] = 'e'; word[2] = 'l'; word[3] = 'l'; word[4] = 'a'; word[5] = '\0'; printf("%s \n", word); char word2[] = "hello"; char *word3 = "hello"; printf("%s \n", word2); printf("%s \n", word3); } |
//str1 결과값![]() |
문자열을 이용하기 위해서는 소스 위에 string.h 헤더파일 선언이 필요하다.
해당 헤더파일 라이브러리에 포함된 함수는 다음과 같다.
함수명 | 기능 |
strcpy | 문자열 복사 |
strlen | 문자열 길이 |
strcat | 문자열 합치기 |
strcmp | 문자열 비교 |
strdup | 문자열을 복제하여 그 주소를 반환(C표준은 아님) |
반응형