120 likes | 311 Views
문자열. 문자열의 소개 문자열의 입출력 null 및 에스케이프 (ESC) 문자 문자열 배열 변환 및 연산 문자열 관련 표준 함수. 문자열 (string) 이란 ? 문자의 일차원 배열 , 끝이 반드시 (null) “ 를 제외하고 모두 포함할 수 있다 . 문자열과 문자의 차이 char a; a = ‘ k ’ 문자 1 자 저장 () 無 char a[] = “ Korea ” ; k o r e a
E N D
문자열 문자열의 소개 문자열의 입출력 null 및 에스케이프(ESC) 문자 문자열 배열 변환 및 연산 문자열 관련 표준 함수
문자열(string)이란? 문자의 일차원 배열, 끝이 반드시 \0 (null) “를 제외하고 모두 포함할 수 있다. 문자열과 문자의 차이 char a; a = ‘k’문자 1자 저장 (\0)無 char a[] = “Korea”; k o r e a \0 char a[] = {‘K’, ‘o’, ‘r’, ‘e’, ‘a’, ‘\0’}; char *ptr = “Korea”; [예 10.1] strlen(s2) + 1 ?? 문자열의 소개
문자열의 입출력 • 포인터를 증가하면서 문자열 출력 • [예 10.2] char p[] = “Korean”; char *a; int I = sizeof(p) - 1; a = p; while(I--) printf(“%s”, a++); [결과]Korean orean rean
문자열의 입출력(계속) • 화면 입출력 (scanf) [예 10.3] 화면에서KOREA (SP) FIRST (ENTER)치면 메모리상에서 K O R E A \0 F I R S T \0 • scanf는 화면에서 SP나 ENTER를 만나면 \0로 변환
문자열의 입출력(계속) • 화면 입출력 (gets) 화면에서KOREA (SP) FIRST (ENTER)치면 메모리상에서 K O R E A F I R S T \0 • gets는 화면에서 ENTER를 만나면 \0로 변환 • 스트링만 입력하기에 편리
line[0] \0 ... ... Null 문자 • Null 문자 (\0) • 문자 스트링의 끝을 표시 • 예 Static char line[80] = “”; strlen(line) ==> 0 sizeof(line) ==> 80 * “” vs “ “ (blank, space) 의미
에스케이프 문자 • \ (back slash)를 앞세우는 문자 • 화면에는 출력되지 않는다 • 출력 형태 제어, 인용부호 출력 • [표 10.1] \0 null 문자 \n new line \”이중 인용 부호 \b back space
문자열의 배열 • char *s[] = {“We”, “are”, “Kim”}; • s는 포인터가 저장된 배열, 각각 we, are, kim을 포인팅하고 있다. • char **ps[] = {s, s+1, s+2}; • ps는 포인터가 저장된 배열, 각각은 s, s+1, s+2라는 주소를 포인팅하고 있다. • 2번 따라가야 실제 값이 있다. • char ***pps = ps; • ps를 pps에 넣는다. Pps는 3번 참조로 값
변환 및 연산 • 문자의 ASCII 코드 값과 문자 자체 구별 • int a = 200; • printf(“case 1 : %d”, a); ==> 200 • printf(“case 2 : %c”, ‘a’); ==> a • printf(“case 3 : %c”, 97); ==> a • printf(“case 4 : %d”, ‘a’); ==> 97 • printf(“case 5 : %d”, ‘a’+1); ==> 98 • printf(“case 6 : %c”, ‘a’+1); ==> b
문자열 관련 표준 함수 • #include <string.h> • strcat(s1, s2): s1과 s2연결, s1 포인터 반환 • strlen(s): 문자열 s의 길이 반환 • strcmp(s1, s2): s1과 s2 비교, 같으면 0 반환 • strcpy(s1, s2): s2를 s1에 복사하고, s1 반환 • strchr(S, c): S 스트링에서 문자 c가 나타나는 첫번째 주소를 반환
문자열 관련 예제 프로그램 • 표준 문자열 함수를 활용한 프로그램 작성 • 아래와 같은 함수를 직접 작성 • strcat • strlen • strcmp • strcpy
SUMMARY • 문자열과 문자 • 문자열의 입출력 방법 • null 및 에스케이프(ESC) 문자 • 문자열 배열 • 변환 및 연산 • 문자열 관련 표준 함수 (암기)