문자, 문자열 함수, 표준 입출력 시스템, 문자 출력 함수, 문자 입력 함수

스트림과 데이터 전송

표준 입출력 스트림
stdin -- 표준 입력 스트림 -- 키보드
stdout --
표준 출력 스트림 -- 모니터
stderr -- 표준 에러 스트림 -- 모니터

문자 출력 함수
#include
<stdio.h>
int putchar (int c);
int fputc (int c, FILE*
stream);

문자 입력 함수
#include <stdio.h>
int
getchar(void);
int fgetc(FILE* stream);

EOF
함수 호출 시 에러가
발생하면 EOF가 반환
fgetc getchar 함수가 파일의 끝에 도달하는 경우에 EOF가 반환
키보드로부터 입력을
받을 경우에는 Ctrl-Z 키의 입력을 파일의 끝이라고 정의

문자열 출력 함수
#include
<stdio.h>
int puts(const char* s);
int puts(const shar* s,
FILE* stream);

문자열 입력 함수
#include <stdio.h>
char*
gets(char* s);
char* fgets(char* s, int n, FILE* stream);

fgets
함수는 입력받을 수 있는 최대 문자열의 길이 n을 초과하는 문자열이 입력되는 경우에는 n-1개까지의 문자만 입력을 받고,
마지막에 NULL 문자열을 삽입해준다.

버퍼를 비우는 fflush 함수
#include<stdio.h>
int
fflush(FILE* stream);
// fflush의 용도는 열혈강의c 458p

문자열 조작 함수

문자열의 길이 반환 strlen
#include <string.h>
size_t strlen(const
char* s)

//size_t는 unsigned int로 보면 된다. 열혈강의 460p

12345

력된 문자열의 길이 : 6
C Program
문자열의 길이 : 10

문자열을 한칸씩 더 세는 이유는
Enter키까지 포함되었기 때문
1 2 3 4 5 \n 로 6개

문자열 복사 strcpy strncpy
#include
<string.h>
char* strcpy(char* dest, const char* src);

예...
strcpy(str2, str1); // str1의 문자열을 str2에 복사...
str2가 같거나 커야함.. 작으면
에러가날 수 있음

#include<string.h>
char* strncpy(char* dest,
const char* src, size_t n)
예.... strncpy(str2, str1, sizeof(str2)-1);


자열을 추가하는 strcat  strncat 함수
#include <string.h>
char*
strcat(char* dest, const char* src);
src의 문자열을 dest로 전달된 문자열 뒤에 연결하는
기능
예.... strcar(str1, str2)

#include <stdio.h>
char*
strncat(char* dest, const char* src, size_t n);
예... strncat(str1,
str2, i);

#include <string.h>
int strcmp(const char* s1,
const char* s2);
s1과 s2를 비교하여 더 큰 문자열,,,(사전순서대로 뒤에있는게 큰거)을 리턴
0<x 
s1이 s2보다 큰 경우
0=x  s1과 s2가 같은 경우
0>x  s1보다 s2가 큰 경우

#include
<string.h>
int strncmp(const char* s1, const char* s2, size_t
n);