Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

Similar documents
PowerPoint Presentation

Microsoft PowerPoint - 제9강 문자열

PowerPoint 프레젠테이션

13 주차문자열의표현과입출력

YRRZBRRLMCEQ.hwp

윤성우의 열혈 TCP/IP 소켓 프로그래밊

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap06-4 [호환 모드]

11장 포인터

<4D F736F F F696E74202D D20B9AEC0DABFAD2C20BDBAC6AEB8B2B0FA20C6C4C0CF20C0D4C3E2B7C2>

11장 포인터

PowerPoint 프레젠테이션

11장 포인터

Microsoft PowerPoint - [CPI16] Lecture 10 - 문자열.pptx

Microsoft PowerPoint - chap-12.pptx

PowerPoint Template

이번장에서학습할내용 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 인간은문자를사용하여정보를표현하므로문자열은프로그램에서중요한위치를차지하고있다. 이번장에서는 C 에서의문자열처리방법에대하여자세히살펴볼것입니다. 2

Microsoft PowerPoint - 10장 문자열 pptx

Microsoft PowerPoint - chap06-1Array.ppt

歯9장.PDF

설계란 무엇인가?

PowerPoint 프레젠테이션

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

chap7.key

<4D F736F F F696E74202D20C1A63132C0E520B9AEC0DABFCD20B9AEC0DABFAD>

쉽게풀어쓴 C 언어 Express 제 12 장문자와문자열 이번장에서학습할내용 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 인간은문자를사용하여정보를표현하므로문자열은프로그램에서중요한위치를차지하

Microsoft PowerPoint - 제12장 문자열(강의)

11장 포인터

11장 포인터

제1장 Unix란 무엇인가?

ch13

11장 포인터

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - 06_(C_Programming)_(Korean)_Characters_Strings

C 프로그램의 기본

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

설계란 무엇인가?

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap11-1.ppt [호환 모드]

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - chap4_2013 [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint 웹 연동 기술.pptx

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Chapter_06

03 상수, 변수, 자료형

Microsoft PowerPoint - 제11강 파일 처리

PowerPoint Presentation

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint 프레젠테이션

윤성우의 열혈 TCP/IP 소켓 프로그래밊

Microsoft PowerPoint - C++ 5 .pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>


Microsoft PowerPoint - chap4 [호환 모드]

<4D F736F F F696E74202D20C1A632B0AD20BAAFBCF6BFCD20C0DAB7E12C20C0FCC3B3B8AEBFCD20C0D4C3E2B7C2>

설계란 무엇인가?

PA for SWE2007

PowerPoint Presentation

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

歯7장.PDF

BMP 파일 처리

02장.배열과 클래스

chap7.PDF

PowerPoint Presentation

슬라이드 1

Microsoft PowerPoint - C프로그래밍-chap16.ppt

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

1.1.1 컴퓨터의 구성 p.19

슬라이드 1

OCW_C언어 기초

PowerPoint 프레젠테이션

PowerPoint Template

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint APUE(Intro).ppt

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - Chapter_08.pptx

1.4.3 증감연산자 후치증가 a++: 프로그램의한명령줄이끝나고 1을증가시킨값을다시 a에저장. 후치감소 a--: 프로그램의한명령줄이끝나고 1을감소시킨값을다시 a에저장. 전치증가 ++a: 1을증가시킨값을미리 a에저장하고프로그램을수행. 전치감소 --a: 1을감소시킨값을미리

Microsoft PowerPoint - chap08-1 [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-8 [호환 모드]

슬라이드 1

untitled

PA0 for SSE2033

Microsoft PowerPoint - chap06-8.ppt

금오공대 컴퓨터공학전공 강의자료

ch15

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

PowerPoint Presentation

PA for SWE2007

PowerPoint 프레젠테이션

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

The Pocket Guide to TCP/IP Sockets: C Version

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

Transcription:

Chapter 15 문자열 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 문자의집합체 문자열의정의 일련의문자 C 언어에서문자열앞뒤에인용부호 를이용 문자와문자열과의차이 문자열의저장 (1) 배열을이용하는방법 문자열상수 c c language 를저장하는문자열배열 항상문자열마지막에는 NULL문자를넣어야함 (2) 문자포인터를이용하는방법 2

예제 15-1 1 문자열저장방법의차이 1) 문자배열이용 2) 문자포인터이용 문자열프린트방법의차이 3 문자열배열처리 : (1) 문자포인터배열을이용 처리하려는문자열의수만큼의문자포인터이용 래기드 (ragged) 배열 char *pary[ ] = {"AT&t", "AT&t", "Sun", "MS"}; 각문자열의출력 for (i = 0; i < 4; ) printf("%-8s", pary[i++]); //printf("%-8s", *(pary + i++)); printf("\n"); 4

문자열배열처리 : (2) 문자 2 차원배열을이용 문자 2 차원배열 2 차원배열의열의크기는문자열중에서가장긴문자열의길이보다 1 크게지정하고, 2차원배열의행의크기는문자열의개수로지정 char strary[][5] = {"c", "c++", "java", "c#"}; 문자이차원배열 strary를이용하여각문자열을출력하려면 strary[i] 로변환명세 %s 를이용 for (i = 0; i < 4; ) printf( "%-8s", strary[i++] ); //printf("%-8s", *(strary + i++)); printf("\n"); 5 예제 15-2 strarray.c 문자열배열을문자포인터배열과문자 2 차원배열로저장하고, 필요한문자열과문자를참조하는프로그램 6

문자, 문자열, 문자배열입출력함수의종류 scant, printf fscant, fprintf gets, puts fputs, fgets getchar, putchar getche getch 7 문자열표준입출력함수 gets puts 함수 gets() 를이용한문자열입력 문자열을입력받을적절한문자배열이용 반환주소값을이용하면문자별로참조가가능 char line[81]; char *ptr; //gets(line); ptr = gets(line); while (*ptr) putchar(* ptr++); printf("\n"); 함수 puts() 를이용한문자열출력 출력할문자열의첫주소값을인자로출력 char *str = " 객체지향언어를하나써보세요?"; puts(str); 8

예제 15-3 9 파일입출력함수 fgets fputs 함수 fgets() char * fgets(char *, int, FILE *); int fputs(const char *, FILE *); 두번째인자는입력할문자의최대수이고, 세번째인자는입력될문자열의파일 문자열을개행문자 (\n) 까지읽어개행문자도함께입력문자열에저장 함수 fputs() 문자열을그대로출력 FILE 입출력대신표준입출력으로사용하려면 stdin, stdout 을이용 여러줄의입력후출력 while (fgets(line, LINENUM, stdin)) { fputs(line, stdout); } 10

예제 15-4 11 문자하나를입출력하는함수 함수 getchar(), putchar() 라인버퍼링 (line buffering) 입력된자료가버퍼에저장되고 Enter 키를만나야 getchar() 함수가작동되고문자를읽기시작함! char ch; printf(" 문자를계속입력하고 Enter 를누르면 >>\n"); while ((ch=getchar())!= 'q') putchar(ch); 12

버퍼링을사용하지않는문자입력 함수 getche() 버퍼를이용하지않고문자하나하나를바로처리하는함수 헤더파일 conio.h 파일을첨가 버퍼를사용하지않으므로문자하나를입력하면바로함수 getche() 를실행하고입력문자가 q 가아니면함수 putchar() 에의하여문자가바로 출력 char ch; printf("\n 문자를누를때마다두번출력 >>\n"); while ((ch=getche())!= 'q') putchar(ch); 13 버퍼링과에코가없는문자입력 함수 getch() 함수 getche() 와마찬가지로버퍼를사용하지않는입력함수 헤더파일 conio.h 파일을첨가 입력한문자를화면에보이지않는특성, 입력한문자를출력함수로출력하지않으면그문자가화면에나타나질않음 char ch; printf("\n 문자를누를때마다한번출력 >>\n"); while ((ch=getch())!= 'q') putchar(ch); 14

pp. 528~541 skip!, 중간점검문제 8,9,10,11 skip! 문자처리함수 (skip!) 관련함수 문자처리함수는헤더파일 ctype.h 를포함시켜사용 검사함수는 isxxx(char) 로, 변환함수는 toxxx(char) 로명명 검사함수는 0(false) 과 0이아닌정수값 (true) 을반환하며, 변환함수는변환된문자를반환 함수 toxxx() 함수 toupper(c) 는 c가영문소문자일때영문대문자로변환하고, c가소문자가아니라면원래 c 가반환 마찬가지로 tolower(c) 는각각c가영문대문자일때영문소문자로변환하고, c가대문자가아니라면원래 c가반환 함수 _toxxx() 함수 _tolower(c) 와 _toupper(c) 는 c 값에관계없이소문자와대문자로변환 영문자가아닌문자를적용하면원하지않는결과가나오므로주의 #define _tolower(_c) ( (_c)-'a'+'a' ) #define _toupper(_c) ( (_c)-'a'+'a' ) 15 문자열함수 (skip!) 문자열관련함수 문자열처리라이브러리함수는헤더파일 string.h 에함수원형이정의 문자열처리라이브러리함수는대부분이름 str----() 로명명 함수 strcmp() 두문자열을비교하는함수 함수 strlen() 문자열에서처음의 NULL 문자를제외한문자열의길이를반환 함수 strcpy() 앞문자열에처음에뒤문자열을복사하여그복사된문자열을반환 함수 strcat() 앞문자열에뒤문자열을연결 (concatenate) 저장하여, 이연결된문자열을반환 함수 strtok() 앞문자열에서뒤문자열에포함되어있는구분자를기준으로토큰을추출 16

명령어줄 도스프롬프트에서실행 17 Command line argument 명령어줄전달인자 명령어라인에서입력하는문자열을프로그램으로전달하는방법이명령어줄전달인자 명령어줄전달인자를이용하지않는다면메인의인자를 void로기술 메인함수의전달인자 argc 는명령어줄에서입력한문자열의수 메인함수의전달인자 argv[] 는명령어줄에서입력한문자열을전달받는문자포인터배열 int main(int argc, char *argv[]) { } 18

Visual C++ 에서명령어인자 명령어인자를설정 메뉴 Project 의하부메뉴 Settings 를눌러다음대화상자에서설정 단축키 Alt+F7을이용 대화상자 Project Settings에서탭 Debug를누르고중간의 Program arguments: 하단의입력상자에인자를기술 이입력상자에는실행파일이름뒤의옵션만을기술 19 프로그래밍실습 프로그램목적 10줄이내에걸쳐문장을입력받아행마다입력된문자열에서모든단어를추출해내는프로그램 이용함수 줄을입력받기위하여함수 gets() 를이용하고, 토큰을나누기위해서함수 strtok() 를이용하며, 각각의토큰길이를알기위하여 strlen() 을이용 다음조건을만족 10 줄이하의여러줄에원하는문장을입력하고, 입력이다되었으면새로운줄처음에키 ctrl+z, 그리고 Enter 키를입력하면결과가출력 토큰은빈칸, 쉼표 (,), 마침표 (.), 느낌표 (!) 그리고탭 (\t) 으로구분되는단어로길이와토큰문자열을출력 20

소스와결과 21