문자, 문자열 선언
문자 : 영어의 알파벳이나 한글의 한 글자 (ex) 'A', '야', ...
문자는 작은따옴표 ' '로 둘러싸서 표기한다.
char형 변수에 문자를 저장한다
char ac = 'B'
문자열 : 문자의 모임인 일련의 문자 (ex) "PYTHON", "한국",....
문자열은 큰 따옴표 " "로 둘러싸서 표기한다.
문자열은 'HELLO'처럼 작은따옴표로 둘러싸도 문자가 될 수 없고, 오류가 발생한다.
문자의 모임인 '문자 배열'을 사용하여 문자열을 저장한다.
문자열의 마지막을 의미하는 NULL 문자 '\0'가 마지막에 저장되어야 한다. 문자열이 저장되는 배열 크기는 반드시 저장될 문자 수보다 1이 커야 한다. (C언어는 항상 널(NULL) 문자를 문자열의 마지막으로 인식한다.)
char c[] = "hello nice"
char c[11] = "hello nice"
만일 지정한 배열 크기가 (문자수 + 1) 보다 크면 나머지 부분은 모두 '\0'으로 채워진다.
함수 printf()에서 %c로 문자를 출력한다. %s로 문자열을 출력한다.
다양한 문자 입출력
getchar() : 문자의 입력에 사용된다.
putchar() : 문자의 출력에 사용된다.
문자 입력 함수인 getchar()는 라인 버퍼링 방식을 사용하므로 문자 하나를 입력해도 반응을 보이지 않다가 [enter] 키를 누르면 그제야 이전에 입력한 문자마다 입력이 실행된다.
그 외 버퍼를 사용하지 않는 입력함수
getche() : 화면에 보이는 행이 표준입력과 표준출력이 번갈아 가면서 나오게 되므로 한문자가 두번씩 나오게 된다. ex) "input"가 입력문자라면 화면에는 "iinnppuutt"가 보이게 된다.
getch() : 입력한 문자가 화면에 보이지 않는 특성을 가지고 있다. 입력된 문자를 출력 함수로 따로 출력하지 않으면 입력 문자가 화면에 보이지 않게 된다.
두 함수 모두 이용하려면 헤더 파일 conio.h를 삽입해야 한다.
gets() : 한 행의 문자열 입력에 유용한 함수이다.
puts() : 한 행에 문자열을 출력하는 함수이다.
문자열 입출력인 두 함수는 처리 속도 빠르다는 장점이 있다.
문자열 관련 함수
memcpy() : 문자 배열의 복사를 위한 함수
memchr() : 문자 배열에서 문자 이후의 문자열을 찾는 함수
strcmp() : 문자열 비교 함수
char *a1 = "abc";
char *a2 = "abc";
printf("strcmp(%s, %s) = %d\n", a1, a2, strcmp(a1,a2));
두 문자를 비교해서 앞 문자가 작으면 음수, 뒤 문자가 작으면 양수, 같으면 0을 반환한다. (비교 기준은 아스키코드값이다.)
strcpy() : 문자열 복사와 연결
char dest[80] = "Java";
char source[80] = "C is a language.";
printf("%s\n", strcpy(dest, source)); //결과 C is a language.
printf("%s\n", strcpy(dest, "C#", source)); // 결과 C#is a language
printf("%s\n", strcpy(dest, "C#", source)); //결과 C#
strcat() : 문자열 연결 함수
char dest[80] = "C";
printf("%s\n", strcat(dest, " is ")); //실행 결과 C is
printf("%s\n", strncat(dest, "a java", 2)); //실행 결과 C is a
printf("%s\n", strcat(dest, "language")); //실행 결과 C is a language
strtok() : 문자열 추출 함수
'C 프로그래밍 > C언어 정리' 카테고리의 다른 글
C언어 정리10 - 변수 유효범위 (0) | 2021.08.16 |
---|---|
C 언어 총 정리 8 - 함수 기초 (0) | 2021.08.10 |
C언어 총 정리 7 - 배열 (0) | 2021.08.08 |
C언어 총정리 6 - 포인터 변수와 선언 (0) | 2021.08.08 |
C언어 정리 - 5 (0) | 2021.08.05 |