[열혈C프로그래밍] chapter 18. 문자와 문자열 관련 함수
chapter 18
문자와 문자열 관련 함수
stream(스트림)과 data(데이터)의 이동
데이터의 입출력이란 프로그램의 흐름을 뜻하는데,
프로그램을 중심으로 프로그램 안으로 데이터가 들어오는 것이 입력이고,
프로그램을 중심으로 프로그램 밖으로 데이터가 들어오는 것이 출력이다.
-
대표적인 입력 장치: 키보드, 마우스
-
대표적인 출력 장치: 모니터, 프린터
입출력에는 스트림이란 연결고리가 반드시 있어야 한다.
스트림이란 커널에서 제공하는 소프트웨어로 구현된 가상의 다리로,
가령, 프로그램과 모니터를 연결해주는 출력스트림이 있고,
프로그램과 키보드를 연결해주는 입력스트림이 있어서 입출력이 가능한 것이다.
또 스트림은 한 방향으로 흐른다는 것을 명심하자. 그래서 입출력 스트림이 따로 있는 것이다.
(파일을 참조할때도 물론 스트림이 필요하다)
스트림 이름 | 한글 이름 | 역할 |
---|---|---|
stdin | 표준 입력 스트림 | 키보드 대상으로 입력 |
stdout | 표준 출력 스트림 | 모니터 대상으로 입력 |
stderr | 표준 에러 스트림 | 모니터 대상으로 입력 |
문자 단위 입출력 함수
- 문자 출력 함수: putchar, fputc
```c
include
int putchar(int c); int fputc(int c , FILE* stream); // 함수호출 성공 시 쓰여진 문자정보가 출력, 실패시 EOF(End Of File, -1) 반환.
* 문자 입력 함수: getchar, fgetc
```c
## include <stdio.h>
int getchar(void);
int fgetc(FILE* stream);
문자열 단위 입출력 함수
- 문자열 출력 함수: puts, fputs
## include <stdio.h> int puts(const char* s) int fputs(const char* s , FILE* stream);
- 문자열 입력 함수: gets, fgets
## include <stdio.h> char* gets(char* s); char* fgets(char *s ,int n , FILE* stream);
표준 입출력과 버퍼
그외 문자열 관련 함수
- 문자열의 길이를 반환하는 함수: strlen
## include <string.h> size_t strlen(const char* s);
- 문자열을 복사하는 함수들: strcpy, strncpy
## include <string.h>
char * strcpy(char * dest, const char* src);
char * strncpy(char * dest, const char* src, size_t n);
// 복사된 문자열의 주소값 반환
- 문자열을 덧붙이는 함수들: strcat, strncat
## include <string.h> char * strcat(char * dest, const char* src); char * strncat(char * dest, const char* src, size_t n); // 덧붙여진 문자열의 주소값 반환
- 문자열을 비교하는 함수들: strcmp, strncmp
## include <string.h> int strcmp(const char * s1, const char* s2); int strncmp(char char * s1, const char* s2, size_t n); //두 문자열의 내용이 같으면 0, 같지 않으면 0 이 아닌 값 반환
| 조건(아스키코드값) | 반환값| |——|——-| |s1>s2 | 0보다 큰 값 반환| |s1<s2 | 0보다 작은 값 반환| |s1과 s2가 완전 일치한다면 | 0 반환 |
변환 함수: atoi, atol, atof
int atoi(const char *str); //문자열의 내용을 int형으로 변환
long atol(const char *str); //문자열의 내용을 long으로 변환
double atof(const char *str); //문자열의 내용을 double으로 변환