" async="async"> ', { cookie_domain: 'auto', cookie_flags: 'max-age=0;domain=.tistory.com', cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds }); 책 알려주는 남자 :: 쉽게 풀어쓴 C언어 Express 12장 Summary

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";
 strcpy(p, "Goodbye");

 char *p = "HelloWorld";
 strcpy(p, "Goodbye");

 char *p = "HelloWorld";
 p = "Goodbye";

 char p[] = "HelloWorld";
 p = "Goodbye";



문자열 처리 함수에는 다음과 같은 함수들이 있다.

함수 

설명 

 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로부터 지정된 형식으로 수치를 읽어서 변수에 저장한다



블로그 이미지

얼음꿀차

책을 한 번 읽긴 읽어야겠는데 막상 읽자니 뭘 읽을지 고민되는 당신을 위해 읽을만한 책들을 알려드립니다!

,