21장. 문자와 문자열 처리 함수.

Slides:



Advertisements
Similar presentations
C 프로그래밍 기초.
Advertisements

프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
2007 1학기 12 배열.
제12장 표준 입출력과 파일 입출력.
Power C++ 제6장 포인터와 문자열.
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express.
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express.
-Part3- 제3장 콘솔 입출력과 파일 입출력.
프로그래밍실습 제 18 강.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Chapter 10– 표준 함수(1) Outline 10.1 스트림과 파일 10.2 입출력 표준 함수
제 2 장 배열과 스트링.
Department of Computer Engineering
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
C언어: 배열 (Arrays).
6장. printf와 scanf 함수에 대한 고찰
버퍼 오버플로우에 대한 대책과 발전된 공격 안전한 함수 사용 버퍼 오버플로우에 취약한 함수 사용하지 않기
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
HW#1 Source 파일 제출 3.20(수)까지 제출 학번_이름_01.c
Part 14 파일 입출력 ©우균, 창병모 ©우균, 창병모.
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
Part 11 문자열 ©우균, 창병모 ©우균, 창병모.
제 12장 I/O멀티플렉싱(Multiplexing)
-Part3- 제5장 전처리기와 파일 분할 컴파일
10장 메모리 관리.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
Department of Computer Engineering
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
9장 파일 입출력.
10장 포인터와 문자열 포인터 기본 배열과 포인터 매개변수 전달방법 포인터와 문자열.
처음으로 배우는 C 프로그래밍 제5부 추가적인 화제들 제 11 장 파일 처리.
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
12장 파일처리와 매크로 파일 입출력 함수 문자 입출력 함수 라인 입출력 함수 불록 입출력 함수 매크로.
Chapter 11 Strings.
Chapter 4. 보조자료 - 파일 입출력 파일의 기본 개념과 특징을 이해한다. 파일 처리 과정을 이해한다.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
프로그래밍2 및 실습 C언어 기반의 C++ 2.
Department of Computer Engineering
14주차.
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
18강 파일처리함수(2) 강 의 내 용 순차파일 만들기와 읽기 순차파일 입출력함수 랜덤파일 처리
13. 포인터와 배열! 함께 이해하기.
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
제2장 데이터형과 표준 입출력문 문봉근.
2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수
Chapter 10 Strings and Pointers
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
4. 고급변수 사용 : 포인터와 관련하여 메모리 바라보기
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 05. 입출력 함수.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
C언어 (8) 정명희.
구조체(struct)와 공용체(union)
컴퓨터 프로그래밍 기초 #13 : 문자열 Seong-Yun Choi
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
개정판 누구나 즐기는 C언어 콘서트 제10장 문자열 출처: pixabay.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
실습과제 1번 배열 크기 : 8 문자열 길이 : 7 // MBCS 예제: 출력 결과 이해하기
윈도우에서의 유니코드.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
배열.
11장. 1차원 배열.
⊙ 입출력 처리란? data를 입력장치로부터 program 내부로 읽어 들이거나
Presentation transcript:

21장. 문자와 문자열 처리 함수

21-1 스트림과 데이터의 전송 입출력의 이해 스트림에 대한 이해 파일, 콘솔, 소켓 입출력 21-1 스트림과 데이터의 전송 입출력의 이해 파일, 콘솔, 소켓 입출력 스트림에 대한 이해 데이터를 송수신 하기 위한 일종의 다리 그림 21-1

21-1 스트림과 데이터의 전송 표준 입출력 스트림 프로그램 실행 시 자동으로 생성 및 소멸 21-1 스트림과 데이터의 전송 표준 입출력 스트림 프로그램 실행 시 자동으로 생성 및 소멸 모니터와 키보드를 그 대상으로 함 이름 스트림의 종류 입·출력 장치 stdin 표준 입력 스트림 키보드 stdout 표준 출력 스트림 모니터 stderr 표준 에러 스트림 표 21-1

21-2 문자 단위 입출력 함수 문자 출력 함수 문자 입력 함수 #include <stdio.h> 21-2 문자 단위 입출력 함수 문자 출력 함수 #include <stdio.h> Int putchar(int c); Int fputc(int c, FILE* stream) 에러가 발생하는 경우 EOF 리턴 문자 입력 함수 #include <stdio.h> Int getchar(void); Int fgetc(FILE* stream); 에러가 발생하거나 파일의 끝에 도달하는 경우 EOF 리턴

21-2 문자 단위 입출력 함수 EOF에 대한 이해 문자 단위 입 출력 함수의 필요성 21-2 문자 단위 입출력 함수 EOF에 대한 이해 fgetc, getchar 함수가 파일의 끝에 도달하는 경우 반환 End-Of-File의 약자로서, 파일의 끝을 표현하기 위한 상수 (-1의 값을 지닌다) 콘솔의 경우 Ctrl-Z가 파일의 EOF를 의미 예제 Ctrl_Z.c 참조 문자 단위 입 출력 함수의 필요성 용도에 맞는 적절한 함수를 제공함으로써 성능 향상을 도모

21-2 문자 단위 입출력 함수 /* Ctrl_Z.c*/ /* char_IO.c*/ 21-2 문자 단위 입출력 함수 /* char_IO.c*/ #include <stdio.h> int main() { char ch=0; while(ch != 'q') ch=getchar(); putchar(ch); } return 0; /* Ctrl_Z.c*/ #include <stdio.h> int main() { char ch=0; while(ch != EOF) ch=getchar(); putchar(ch); } printf("program 종료 \n"); return 0;

21-3 문자열 단위 입출력 함수 문자열 출력 함수 문자열 입력 함수 #include <stdio.h> 21-3 문자열 단위 입출력 함수 문자열 출력 함수 #include <stdio.h> Int puts(const char* s); Int fputs(const char* s, FILE* stream) 에러가 발생하는 경우 EOF 리턴 문자열 입력 함수 #include <stdio.h> char* gets(char* s); char* fgets(char* s, int n, FILE* stream); 오류가 발생하거나 파일의 끝에 도달하는 경우 NULL 포인터 리턴

21-3 문자열 단위 입출력 함수 /* puts_fputs.c*/ #include <stdio.h> 21-3 문자열 단위 입출력 함수 /* puts_fputs.c*/ #include <stdio.h> int main() { fputs("fputs 함수에 의한 출력, ", stdout); fputs("I Love Linux ", stdout); fputs("\n", stdout); // 한 줄 건너 뛰기 위해서. puts("puts 함수에 의한 출력,"); puts("I Love Linux "); return 0; } /* fputs.c */ #include <stdio.h> int main() { char str[10]; fputs("문자열을 입력 하세요 : ", stdout); fgets(str, sizeof(str), stdin); fputs("입력된 문자열 : ", stdout); fputs(str, stdout); return 0; }

21-4 표준 입출력과 버퍼(Buffer) 입출력 사이에 존재하는 버퍼의 이해 여분의 임시 메모리적 특징을 지닌다. 성능 향상이 목적이다. 모아서 보내고, 모아서 받고... 그림 21-2

21-4 표준 입출력과 버퍼(Buffer) 버퍼를 비우는 작업을 하는 fflush 함수 fflush 함수의 필요성 예제 fflush.c 참조 #include <stdio.h> int fflush(FILE * stream); 성공 시 0, 실패 시 EOF 리턴 그림 21-3

21-4 표준 입출력과 버퍼(Buffer) /* fflush.c */ #include <stdio.h> int main(void) { char perID[7]; // 6+null문자=7 char name[10]; fputs("주민번호 앞 6 자리를 입력하세요 : ", stdout); fgets(perID, sizeof(perID), stdin); fflush(stdin); // 입력 버퍼를 비운다. fputs("이름을 입력 하세요 : ", stdout); fgets(name, sizeof(name), stdin); printf("주민번호 앞자리 : %s\n", perID); printf("이 름 : %s\n", name); return 0; }

21-5 문자열 조작 함수 문자열의 길이를 반환하는 strlen 함수 문자열을 복사하는 함수 21-5 문자열 조작 함수 문자열의 길이를 반환하는 strlen 함수 문자열을 복사하는 함수 #include <stdio.h> size_t strlen(const char* s) 성공 시 0, 실패 시 EOF 리턴 #include <string.h>   char* strcpy(char* dest, const char* src); char* strncpy(char* dest, const char* src, size_t n); 리턴 시 복사된 문자열의 포인터 리턴

21-5 문자열 조작 함수 /* strlen.c */ #include <stdio.h> 21-5 문자열 조작 함수 /* strlen.c */ #include <stdio.h> #include <string.h> int main(void) { char str[100]; while(1){ fgets(str, sizeof(str), stdin); printf("문자열의 길이 : %d \n", strlen(str)); } return 0;

21-5 문자열 조작 함수 문자열을 추가하는 함수 그림 21-5 #include <string.h> 21-5 문자열 조작 함수 문자열을 추가하는 함수 #include <string.h>   char* strcat(char* dest, const char* src); char* strncat(char* dest, const char* src, size_t n); 리턴 시 추가된 문자열의 포인터 리턴  그림 21-5

21-5 문자열 조작 함수 /* strcat.c */ #include <stdio.h> 21-5 문자열 조작 함수 /* strcat.c */ #include <stdio.h> #include <string.h> int main(void) { char str1[30]="Your favorite language is "; // null 문자 포함 27문자. char str2[10]; fputs("What is your favorite computer lanaguage ? : ", stdout); fgets(str2, sizeof(str2), stdin); strcat(str1, str2); printf("생성된 문자열 : %s \n", str1); return 0; }

21-5 문자열 조작 함수 문자열을 비교하는 함수 표 21-2 리턴 값 의미 0보다 큰 값(양수) 21-5 문자열 조작 함수 문자열을 비교하는 함수 #include <string.h>   int strcmp(const char* s1, const char* s2); int strncmp(const char* s1, const char* s2, size_t n); 리턴 시 추가된 문자열의 포인터 리턴  리턴 값 의미 0보다 큰 값(양수) str1이 str2 보다 큰 경우 str1과 str2가 완전히 같은 경우 0보다 작은 값(음수) str1이 str2 보다 작은 경우 표 21-2

21-5 문자열 조작 함수 /* strcamp.c */ #include <stdio.h> 21-5 문자열 조작 함수 /* strcamp.c */ #include <stdio.h> #include <string.h> char* str1="ABC"; char* str2="ABD"; int main (void) { int result; result=strcmp(str1, str2); if(result>0) puts("str1이 str2보다 큽니다 "); else if(result<0) puts("str2가 str1보다 큽니다"); else puts("두 문자열이 정확히 같습니다"); return 0; }

21-5 문자열 조작 함수 문자열을 숫자로 변환하는 함수들 대소문자의 변환을 처리하는 함수들 21-5 문자열 조작 함수 문자열을 숫자로 변환하는 함수들 대소문자의 변환을 처리하는 함수들 #include <stdlib.h>   int atoi(char *ptr); // 문자열을 int형 데이터로 변환 long atol(char *ptr); // 문자열을 long형 데이터로 변환 double atof(char *str); // 문자열을 double형 데이터로 변환 #include <ctypes.h>   int toupper(int c); // 소문자를 대문자로 int tolower(int c); // 대문자를 소문자로