12장 Summary
컴퓨터에서 문자는 아스키 코드로 나타낸다.
문자를 표현하는 자료형은 char이다.
문자열은 연속된 문자들의 모임으로 문자열의 끝은 NULL 문자로 표시한다.
★정상적인 데이터와 쓰레기값을 분리하기 위해서 필요하다.
문자열을 저장할 때는 char형의 배열에 저장한다.
대상 |
설명 |
A |
컴파일러는 변수의 이름으로 간주한다 |
'A' |
문자 A를 나타낸다. 문자 A에 대한 아스키코드와 같다 |
"A" |
문자 A로 이루어진 문자열을 나타낸다 |
문자 배열 s를 "xyz"로 초기화하려면 char s[] = {'x', 'y', 'z', '\0'}; 또는 char s[] = "xyz"; 와 같이 한다.
저장하려는 문자열의 크기보다 문자 배열의 크기를 하나 더 크게 하는 이유은 NULL 문자를 저장하기 위해서이다.
데이터 세그먼트 : 값을 변경할 수 있는 메모리 영역 (모든 변수)
텍스트 세그먼트 : 값을 읽기만 하고 변경할 수 없는 메모리 영역(문자열 상수)
이로 인해 아래와 같은 차이가 발생한다.
가능 | 불가능 |
char p[] = "HelloWorld"; | char *p = "HelloWorld"; |
char *p = "HelloWorld"; | char p[] = "HelloWorld"; |
문자열 처리 함수에는 다음과 같은 함수들이 있다.
함수 |
설명 |
strlen(s) |
문자열 s의 길이를 구한다 |
strcpy(s1, s2) |
s2를 s1에 복사한다 |
strcat(si1 s2) |
s2를 s1의 끝에 붙여넣는다 |
strcmp(s1, s2) |
최대 n개의 문자까지 s1과 s2를 비교한다 |
strcmp() 함수에서 2개의 문자열이 일치하면 어떤 값이 반환되는가? 0
문자열 처리 라이브러리 함수를 사용하려면 포함시켜야하는 헤더 파일은 <string.h> 이다.
getchar()와 getch()의 차이점은 버퍼의 사용유무, 에코여부, 문자수정여부이다.(getchar()가 모두 사용 혹은 가능)
strcpy()와 strncpy()의 차이점은 복사할 문자의 개수 제한여부이다.
strcmp("dog", "dog")의 반환값은 0이다.
음수 |
s1이 s2보다 앞에 있다 |
0 |
s1 == s2 |
양수 |
s1이 s2보다 뒤에 있다 |
printf()와 sprintf()의 차이점은 첫번째 매개변수이다.
문자열 입출력 함수에는 다음과 같은 함수들이 있다.
함수 |
설명 |
gets() |
한 줄의 문자열을 읽어서 배열에 저장한다 |
puts() |
배열에 저장되어 있는 한 줄의 문자열을 출력한다 |
sprintf(s, ...) |
변수의 값을형식 지정자에 따라 문자열 형태로 문자 배열 s에 저장한다 |
sscanf(s, ...) |
문자열 s로부터 지정된 형식으로 수치를 읽어서 변수에 저장한다 |
'프로그래밍 > 쉽게 풀어쓴 C언어 Express' 카테고리의 다른 글
쉽게 풀어쓴 C언어 Express 12장 Programming (0) | 2018.11.17 |
---|---|
쉽게 풀어쓴 C언어 Express 12장 Exercise (0) | 2018.11.16 |
쉽게 풀어쓴 C언어 Express 11장 Programming (0) | 2018.11.13 |
쉽게 풀어쓴 C언어 Express 11장 Exercise (1) | 2018.11.13 |
쉽게 풀어쓴 C언어 Express 11장 Summary (0) | 2018.11.06 |