1. C 언어의 문자열
※ ☞ C 언어 문자열 참조
- 입출력 (stdio.h) : gets(), fgets(), puts(), fputs(), scanf(), printf() 등
- 처리 (string.h) : strlen(), strcmp(), strcpy() 등
2. C 언어의 문자열 함수의 주요 종류
ㅇ 문자열 입력/출력 : 문자, 단순 문자열, 서식 문자열 등
ㅇ 문자열 처리 : 복사, 비교, 결합(연결), 검색, 변환 등
3. C 언어의 문자열 입출력 함수
ㅇ 문자 단위의 입출력 (stdio.h)
- getchar() : 한 문자 입력 후 변수에 대입
- putchar(인자) : 인자로 전달된 한 문자를 출력
ㅇ 단순 문자열 입출력 (stdio.h)
- 문자열 입력 : gets(), fgets()
. gets(문자열) : 한 줄을 전부 읽고, 개행문자(\n)를 제거한 후 널문자(\0)를 추가함
.. (문제점 : 입력 문자열을 기억공간에 저장할 때, 입력 크기를 점검하지 않음)
. fgets(문자열,크기,stdin) : 입력 최대 크기 지정, 개행문자도 읽고 저장
- 문자열 출력 : puts(), fputs()
. puts() : 문자열 출력 끝에 자동으로 개행문자(\n) 추가
.. 성공: 0값 또는 0이 아닌값 반환, 실패: EOF 반환
. fputs() : 문자열 출력 끝에 개행문자(\n) 추가 안함
ㅇ 서식 문자열에 의한 입출력 (stdio.h) ☞ C 서식 문자열 참조
- 입출력 : printf(), scanf(), sprintf()
. scanf(서식,변수 or 값) : 서식 문자열에 의한 키보드 입력
. printf(서식,변수 or 값) : 서식 문자열에 의한 화면 출력
. sprintf(배열 or 포인터,서식,변수 or 값) : 서식 문자열에 의해 배열로 저장
. fprintf(파일포인터,서식,변수 or 값) : 서식 문자열에 의해 파일로 저장
. 한편, 성공 : 읽은/쓴 문자 개수를 반환, 실패 : 음수 (-1)
4. C 언어의 문자열 처리 함수 (string.h)
※ 주요 문자열 처리 형태
- (연결, 검색/위치파악, 복사, 추출, 비교, 카운트, 치환, 공백제거, 빈 문자열 검사 등)
ㅇ 문자열 길이 (카운트)
- strlen(문자열 배열 or 문자열 포인터)
ㅇ 문자열 연결
- strcat() : 문자열 연결
- strncat() : 문자열 n개 연결
ㅇ 문자열 비교
- strcmp(문자열 1, 문자열 2) : 문자열 비교
- strncmp() : 문자열 n개 비교
ㅇ 문자열 복사
- strcpy(s,"...") : 문자열 변수 s에 "..."를 복사
. 반환은 타깃 문자열 변수 s에 대한 포인터
- strncpy() : 문자열 n개 복사
ㅇ 문자열 검색
- 단일 문자 검색 : strchr(s,c), strrchr(s,c)
. 성공 : 문자열 포인터 반환, 실패 : NULL 반환
- 다중 문자 검색 : strpbrk()
- 문자 포함 여부
. 문자 포함 : strcspn()
. 문자 미 포함 : strspn()
- 문자열 검색 : strstr()
ㅇ 문자열 변환
- 대문자 변환 : strupr()
- 소문자 변환 : strlwr()
ㅇ 문자열 구분자로 분리
- strtok()
ㅇ 문자열 채움
- strset()
ㅇ 문자열 뒤집기
- strrev()
5. C 언어의 변환 지정자, 서식 문자열, 서식 지정자
ㅇ 문자열 입출력 함수에서, 가변 인수를 어떻게 처리할지를 지정키 위해 사용되는 포멧(형식)
ㅇ (명칭)
- 변환 지정자 (Conversion Specifier), 서식 문자열 (Format String),
서식 지정자 (Format Specifier)
ㅇ 종류
- 단일 문자 : %c
- 10진수 (정수)
.. %d 또는 %i (부호있음, signed integer) (decimal)
.. %ld (부호있음, signed long integer) (long decimal)
.. %u (부호없음, unsigned integer)
.. %lu (부호없음, unsigned long integer)
- 16진수 (정수) : %x or %X (부호없음)
- 8진수 (정수) : %o
- 부동소수점 수 (실수)
. %f (10진수, 기본 : 소수점 6자리까지)
. %lf (10진수 소수점 6자리)
. %e 또는 %E (지수) : 例) 0.1234e-5f (0.1234 x 10-5)
. %a
- 문자열 : %s
- 주소 (16진수) : %p
. %x or %X 를 써도 동일 결과 나옴
- 퍼센트(%) 문자 출력 : %%
ㅇ 例)
- scanf("%d",&sum); => 1개 숫자 만 입력
- scanf("%3d",&var); => 1234 입력시, 123 만 입력되어 변수 var에 저장됨