문자열과 배열 문자열 입출력 문자열 처리 함수 문자 처리 함수 문자열의 배열

Slides:



Advertisements
Similar presentations
03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
Advertisements

2007 1학기 12 배열.
데이터의 표현과 연산 (1) (Chapter 3)
Power C++ 제6장 포인터와 문자열.
C++ Espresso 제3장 배열과 포인터.
C++ Espresso 제3장 배열과 포인터.
쉽게 풀어쓴 C언어 Express 제12장 문자와 문자열 C Express.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
-Part3- 제3장 콘솔 입출력과 파일 입출력.
프로그래밍실습 제 18 강.
쉽게 풀어쓴 C언어 Express 제12장 문자와 문자열 C Express Slide 1 (of 28)
Chapter 10– 표준 함수(1) Outline 10.1 스트림과 파일 10.2 입출력 표준 함수
제 8 장  파서 생성기 YACC 사용하기.
제1장 코드와라이브러리 Page 1 ~ 30 ■■■■■ ■ ■.
제 10 장 문자와 문자열.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
Part 11 문자열 ©우균, 창병모 ©우균, 창병모.
변수와 자료형.
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Internet Protocol and Programming
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
21장. 문자와 문자열 처리 함수.
9장 파일 입출력.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express.
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
변수와 자료형.
Part 04 입출력과 전처리 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
Chapter 11 Strings.
Chapter 4. 보조자료 - 파일 입출력 파일의 기본 개념과 특징을 이해한다. 파일 처리 과정을 이해한다.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
프로그래밍2 및 실습 C언어 기반의 C++ 2.
2019년 1월 16일 오후 6시 15분 제 6 장 함수
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
18강 파일처리함수(2) 강 의 내 용 순차파일 만들기와 읽기 순차파일 입출력함수 랜덤파일 처리
Chapter 5 Character Processing
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
Chapter 10 함수 기본.
2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수
Chapter 10 Strings and Pointers
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 11. 1차원 배열.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 05. 입출력 함수.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
C언어 (8) 정명희.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
컴퓨터 프로그램은 여러 기능의 복합체이다. 라이브러리 함수와 사용자 정의 함수
컴퓨터 프로그래밍 기초 #13 : 문자열 Seong-Yun Choi
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
argc, argv 의 사용방법 #include <stdio.h>
개정판 누구나 즐기는 C언어 콘서트 제10장 문자열 출처: pixabay.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
어서와 C언어는 처음이지 제23장.
C.
printf("Global Korea\n");
실습과제 1번 배열 크기 : 8 문자열 길이 : 7 // MBCS 예제: 출력 결과 이해하기
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
Chapter 09. 배열.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
배열.
11장. 1차원 배열.
Presentation transcript:

문자열과 배열 문자열 입출력 문자열 처리 함수 문자 처리 함수 문자열의 배열 7장 문자열 문자열과 배열 문자열 입출력 문자열 처리 함수 문자 처리 함수 문자열의 배열

문자열과 배열 문자열 문자열과 배열 컴퓨터 내부 표현 "Korea" 문자들이 메모리의 연속적인 위치에 배치됨 널문자('\0')로 종료됨 (널문자는 문자열 끝을 의미) 문자열과 배열 문자열은 문자배열에 저장 가능 (문자배열의 크기 >= 문자 개수+1) 이어야 함 문자배열에 저장된 문자들이 '\0'으로 끝나지 않으면 문자열이 아님 널문자 공간 C 언어 프로그래밍

문자 배열 초기화 문자열을 사용하지 않는 초기화 문자열 상수로 초기화 strcpy() 함수를 사용한 초기화 잘못된 예 1. char s[4]; s[0] = 'd'; s[1] = 'a'; s[2] = 'y'; s[3] = '\0'; … 프로그램 내에서 초기화 2. char s[4] = { 'd', 'a', 'y', '\0' }; … 초기화 선언 문자열 상수로 초기화 char s[5] = "day"; … 배열크기는 문자 개수보다 1이상 커야 함 char s[ ] = "day"; … 배열크기가 문자열 저장에 필요한 크기로 됨 = 4 strcpy() 함수를 사용한 초기화 #include <string.h> … strcpy()함수 원형 선언 포함 char s[4]; … strcpy(s, "day"); … 프로그램 내에서 문자배열에 문자열 복사 잘못된 예 s = "day"; … (X) 배열은 치환 불가 C 언어 프로그래밍

문자열 입출력 문자열 입출력 문자열 입력 입력: scanf(), gets() 출력: printf(), puts() char a[80]; … gets(a) … '\n'이 입력될 때까지의 문자열을 문자배열 a로 입력 마지막에 '\n'대신에 '\0'을 저장함 scanf("%s", a); … 공백이 나올 때까지의 문자열을 a로 입력 배열 a앞에 &를 붙이지 않음 scanf("%[A-Za-z]", a); … 알파벳 문자(A-Z, a-z)로 구성된 문자열만 문자배열 a로 입력 scanf("%[^\n]", a) … '\n'이외의 문자로 구성된 문자열을 입력 gets(a)와 같은 동작 C 언어 프로그래밍

문자열 입출력 (2) 문자열 출력 printf("%s", a); … 문자배열 a에 저장된 문자열 출력 printf("%s", "Korea") … 문자열 "Korea" 출력 puts(a); … 문자배열 a에 저장된 문자열을 '\n'과 함께 출력 printf("%s\n", a); puts("Korea"); … 문자열 "Korea"를 '\n'과 함께 출력 printf("%10s", a); … 필드 폭 10 printf("%-10s", a); … 왼쪽정렬 printf("%10.3s", a); … 3 문자만 출력 Korea Korea Kor 10 C 언어 프로그래밍

예제 문자열 입출력 (출력) String Input Output [Enter] String Input Output String s = String gets 함수와 scanf 함수의 문자열 입력 동작 비교 puts 함수와 printf 함수의 문자열 출력 동작 비교 C 언어 프로그래밍

예제: 소문자를 대문자로 변환 (예 7.2) 한 줄을 입력하여 소문자를 대문자로 변환 후 출력 i가 최대 첨자보다 커지거나 (예 7.2) 한 줄을 입력하여 소문자를 대문자로 변환 후 출력 i가 최대 첨자보다 커지거나 s[i]가 널문자이면 반복문 종료 C 언어 프로그래밍

예제: 모든 입력에 대한 소문자대문자 변환 모든 입력에 대해서 소문자를 대문자로 변환하여 출력 gets()함수는 파일끝(EOF, DOS에서 Ctrl-Z)에 도달하면 NULL을 반환 NULL은 stdio.h에 정의되어 있는 기호상수(0) C 언어 프로그래밍

문자열 처리 함수 인수로 문자열을 사용하는 함수 (예 7.5) 문자열 길이 계산 함수 문자열 끝이 널문자로 끝나므로 배열 크기 인수 불필요 (예 7.5) 문자열 길이 계산 함수 널문자는 문자열 길이에 포함되지 않음 널문자의 첨자가 문자열 길이와 같음 s 1 2 3 4 5 길이 4 C 언어 프로그래밍

예제 (예 7.5) 문자열 복사 함수 이 함수를 호출할 때에 배열인수 s1의 크기가 배열인수 s2에 저장된 문자열을 저장할 수 있는 크기 이어야 함. char s1[6]; strcpy(s1, "beautiful"); ... 잘못임 C 언어 프로그래밍

문자열 라이브러리 함수 문자열 라이브러리 함수 표준 라이브러리 함수에서 문자열 처리 함수 제공 (표 7.1 참조) 헤더파일: #include <string.h> strcpy(s1,s2) 문자열 s2를 문자열 s1으로 복사 strcat(s1,s2) 문자열 s2를 문자열 s1뒤에 연결하여 붙임 strcmp(s1,s2) 문자열 s1과 s2를 사전식 비교 strlen(s1) 문자열 s1 길이 strncpy(s1, s2, n) 문자열 s2를 최대 n 문자까지 문자열 s1으로 복사 strncat(s1,s2,n) 문자열 s2를 최대 n 문자까지 문자열 s1뒤에 붙임 strncmp(s1,s2,n) 문자열 s1과 s2를 최대 n 문자까지 사전식 비교 문자열 비교는 s1이 사전식 순서로 s2보다 앞이면 음수를, 같으면 0을, 뒤이면 양수를 반환함. C 언어 프로그래밍

예제 strcat() 함수를 사용한 문자열 연결하기 char s1[13] = "pretty"; char s2[7] = "girl"; strcat(s1, s2); 문자 배열 s1의 크기가 연결한 문자열을 저장할 수 있는 크기이어야 함 C 언어 프로그래밍

예제: 세 문자열을 연결 (예 7.6) 세 문자열을 연결하여 하나의 문자열로 결합 출력: URL = http://www.yonsei.ac.kr/contents/admission/info.html C 언어 프로그래밍

예제: 특정 단어 입력 때까지 단어 수 세기 특정 단어가 입력될 때까지의 단어 수 세기 C 언어 프로그래밍

문자열과 숫자 사이의 변환 숫자 변환 함수 숫자와 문자열 사이의 변환 #include <stdlib.h> a = atoi(s); … 정수 문자열 s를 정수(int)로 변환 b = atol(s); … 정수 문자열 s를 긴 정수(long)로 변환 f = atof(s); … 실수 문자열 s를 실수(double)로 변환 숫자와 문자열 사이의 변환 표준입출력 대신에 문자열로 입출력 수행 sprintf(s, "형식지정 문자열", 출력 값 리스트); sscanf(s, "형식지정 문자열", 입력 변수들 리스트); 문자배열 s 출력 입력 sprintf(s, … ) sscanf(s, … ) C 언어 프로그래밍

예제 문자열 연결 (예7.9) 문자열로 표시된 숫자에 대한 곱셈, 결과를 문자열로 저장 sprintf(url, "%s%s%s", protocol, host, path); … url에 세 문자열이 연결된 문자열이 저장됨 (예7.9) 문자열로 표시된 숫자에 대한 곱셈, 결과를 문자열로 저장 C 언어 프로그래밍

문자 처리 함수 문자 처리 라이브러리 함수 표준라이브러리에서 문자 처리 함수 제공 (표 7.2 참조) 표준라이브러리에서 문자 처리 함수 제공 (표 7.2 참조) 헤더 파일: #include <ctype.h> isalpha(c) c가 알파벳이면 참 isdigit(c) c가 숫자이면 참 isalnum(c) c가 숫자/알파벳이면 참 isspace(c) c가 표준공백문자(공백,\n,\t 등) 이면 참 isupper(c) c가 대문자이면 참 islower(c) c가 소문자이면 참 ... tolower(c) c가 대문자이면 소문자로 변환하여 반환 toupper(c) c가 소문자이면 대문자로 변환하여 반환 C 언어 프로그래밍

문자열의 배열 문자열의 배열 예 문자열  1차원 문자배열에 저장 가능 문자열의 배열  2차원 문자배열에 저장 가능 문자열  1차원 문자배열에 저장 가능 문자열의 배열  2차원 문자배열에 저장 가능 예 char a[4][8] = { "fortran", "basic", "java", "c" }; 또는 char a[ ][8] = { "fortran", "basic", "java", "c" }; a[0] a[1] a[2] a[3] C 언어 프로그래밍

예제: 특정문자로 시작하는 문자열 출력하기 (예7.12수정) 2차원 배열에 저장된 모든 문자열 출력 2차원 배열에 저장된 문자열 중에서 j로 시작하는 문자열 출력 단어의 첫문자 비교 C 언어 프로그래밍

실습 문제 연산 이름과 연산을 할 두 정수를 입력 받아서 주어진 연산 결과를 출력하는 프로그램 작성 연산 이름: add sub mul div(몫) mod(나머지) power(거듭제곱) 입력 형식 add 1 2  출력: 3 power 3 4  출력: 81 교과서 221 페이지 8번 문제. C 언어 프로그래밍