제1장 코드와라이브러리 Page 1 ~ 30 ■■■■■ ■ ■.

Slides:



Advertisements
Similar presentations
2007 1학기 12 배열.
Advertisements

데이터의 표현과 연산 (1) (Chapter 3)
Power C++ 제6장 포인터와 문자열.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
배열(Array) 선린인터넷고등학교 정보통신과 유 순 옥.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
C 10장. 함수의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C언어: 배열 (Arrays).
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
7. while 문의 흐름 제어.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
10장 메모리 관리.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
C 프로그래밍.
10장 포인터와 문자열 포인터 기본 배열과 포인터 매개변수 전달방법 포인터와 문자열.
변수와 자료형.
C언어 프로그래밍의 이해 Ch05. 명령문 Phylogenetic: 계통, 발생(학)의.
Chapter 11 Strings.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
제2장 데이터형과 표준 입출력문 문봉근.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 11. 1차원 배열.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
문자열과 배열 문자열 입출력 문자열 처리 함수 문자 처리 함수 문자열의 배열
Chapter 11. 배열과 포인터.
4장 자료형.
Chapter 05. 입출력 함수.
포인터.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
-Part1- 제7장 반복문이란 무엇인가.
18장. 다차원 배열 그리고 포인터.
C언어 (8) 정명희.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
-Part2- 제2장 다차원 배열이란 무엇인가.
C언어 프로그래밍의 이해 Ch03. 기본 자료형, 변수와 상수.
컴퓨터 프로그래밍 기초 #13 : 문자열 Seong-Yun Choi
개정판 누구나 즐기는 C언어 콘서트 제10장 문자열 출처: pixabay.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
어서와 C언어는 처음이지 제23장.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
실습과제 1번 배열 크기 : 8 문자열 길이 : 7 // MBCS 예제: 출력 결과 이해하기
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
Chapter 09. 배열.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
배열, 포인터, 함수 Review & 과제 1, 2.
3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
배열.
11장. 1차원 배열.
Presentation transcript:

제1장 코드와라이브러리 Page 1 ~ 30 ■■■■■ ■ ■

1.1 ASCII 코드 ASCII 코드 1byte로 표현, 256(28)개 집합 -> 2진수 8비트(16진수 2비트) 표준집합(0~127, 16진수 0x00~0x7f), 확장집합(128~255, 16진수 0x80~0xff) ASCII 코드의 표준집합 제어문자(0~31, 0x00~0x1f), 출력 가능한 문자(32~126), 제어문자(127) p666 ASCII 코드표(32 SP스페이스, 127 DEL삭제)

[예제 101] ASCII 코드 문자 출력 SCII 코드의 표준집합 중 출력가능한 문자(32~126)

[예제 101] ASCII 코드 문자 출력 #include <stdio.h> int main() { unsigned char i, count=0; for(i=32;i<127;i++) { printf("%c(%3d) ", i, i); count++; if(count==5) { count=0; printf("\n"); } return 0;

1.2 완성형 한글 코드 2byte로 표현, ASCII 코드의 확장집합 128이상 영역에 배당 사용빈도가 높은 한글 2,350자, 한자 4,888자, 특수문자 986자로 구성 한글(1st byte 0xb0~0xc8, 176~200, 25개, 2nd byte 0xa1~0xfe, 161~254, 94개) 한자(1st byte 0xca~0xfd, 202~253, 52개, 2nd byte 0xa1~0xfe, 161~254, 94개) 특수문자(1st byte 0xa1~0xac, 161~172, 12개, 2nd byte 0xa1~0xfe, 161~254, 94개)

[예제 102] 한글 출력 한글 “가”는 2byte의 문자열이므로 NULL 포함하여 3byte

[예제 102] 한글 출력 #include <stdio.h> int main() { char han[3]="가"; unsigned char code; code=han[0]; printf("%x %d\n", code, code); code=han[1]; return 0; }

[예제 103] 코드에 의한 한글 출력 코드에 의한 한글“가”출력

[예제 103] 코드에 의한 한글 출력 #include <stdio.h> int main() { unsigned char b1=0xb0; //1st byte unsigned char b2=0xa1; //2nd byte printf("%c%c\n",b1, b2); return 0; }

[예제 104] 0xb0로 시작 한글 출력 1st byte가 0xb0로 시작하는 한글 코드

[예제 104] 0xb0로 시작 한글 출력 #include <stdio.h> int main() { unsigned char b1=0xb0; unsigned char b2; for(b2=0xa1;b2<0xfe;b2++) { printf("%c%c%2x%2x ", b1, b2, b1, b2); if(b2%10==0) printf("\n"); } return 0;

1.3 한자 코드와 특수 기호 코드 한자(1st byte 0xca~0xfd, 202~253, 52개, 2nd byte 0xa1~0xfe, 161~254, 94개) 특수문자(1st byte 0xa1~0xac, 161~172, 12개, 2nd byte 0xa1~0xfe, 161~254, 94개)

[예제 105] 한자 출력 1st byte가 0xca로 시작하는 한자 코드

[예제 105] 한자 출력 #include <stdio.h> int main() { unsigned char b1=0xca; unsigned char b2; for(b2=0xa1;b2<=0xfe;b2++) { printf("%c%c%2x%2x ", b1, b2, b1, b2); if(b2%10==0) printf("\n"); } return 0;

[예제 106] 특수기호 출력 1st byte가 0xa1로 시작하는 특수기호 코드

[예제 106] 특수기호 출력 #include <stdio.h> int main() { unsigned char b1=0xa1; unsigned char b2; for(b2=0xa1;b2<0xfe;b2++) { printf("%c%c%2x%2x ", b1, b2, b1, b2); if(b2%6==0) printf("\n"); } return 0;

[예제 107] 특수기호 ■ 출력 특수기호 ■ 출력

[예제 107] 특수기호 ■ 출력 #include <stdio.h> int main() { unsigned char a1; unsigned char a2; a1=0xa1; a2=0xe1; printf("%c%c\n", a1, a2); return 0; }

[연습문제 01] 프로그램 완성 입력한 한 개의 문자가 한글인지 영문인지를 구분하는 프로그램을 완성 #include <stdio.h> int main(void) { unsigned char str[3]; printf("한 개의 문자 입력>"); scanf("%s", &str);

[연습문제 02] 프로그램 작성 다음 그림과 같은 형식으로 출력하는 프로그램을 작성 ■■■■■ ■ ■

[연습문제 03] 프로그램 작성 한글 문자열을 입력받아 2byte 완성형 코드(16진수)로 출력하는 프로그램을 작성 표준 입출력 함수, gets(); 한 줄의 문자열 입력 char str[40]; gets(str); #include <stdio.h> #include <string.h> //strlen함수 사용 int main(void) { char hangul[40];//최대 size 40byte int i, length; unsigned char code; printf("한글 문자열 입력>"); gets(hangul);

1.4 문자열의 저장과 처리 배열의 크기는 실제 저장될 문자 개수보다 1 크게 지정하는데 문자열 마지막에 NULL을 저장 배열이름 s는 포인터 상수이므로 s+0, *(s+2)와 같은 연산이 가능하다. s[2]와 *(s+2)는 동일 한글 문자열에 한 글자를 출력하려면 2byte로 저장되었기 때문에 %c%c를 이용 t+2는 포인터 변수 t가 가리키는 주소에 2를 더한 것으로 t가 가리키는 주소 이후의 2번째 주소임

[예제 109] 문자열 배열저장 #include <stdio.h> int main(void) { char s[]="swimming"; //9byte 사용 char t[5]="야구"; printf("s:%s\n", s); printf("s[2]:%c\n", s[2]); printf("t:%s\n", t); printf("t:%c%c\n", t[2],t[3]); return 0; }

[예제 110] 문자열 포인터에 저장 #include <stdio.h> int main(void) { char s[]="swimming"; char *t="야구공"; //포인터변수, 주소저장 printf("s:%s\n", s+0); printf("s[2]:%c\n", *(s+2));//포인터로 표시 printf("t:%s\n", t+0); printf("t:%s\n", t+2);//t가 가리키는 주소 이후의 //2번째 위치 이후 문자열 return 0; }

1.5 문자열의 길이 함수 strlen(st) NULL문자를 제외한 문자열 st의 길이(byte 수)를 계산, 헤더파일 <string.h>가 필요함수 strlen과 연산자 sizeof 비교

[예제 111] 문자열 길이 계산 #include <stdio.h> #include <string.h> int main(void) { char s[20]="abcd"; char *t="야구공"; printf("문자열s의 길이:%d\n", strlen(s)); printf("sizedo(s) :%d\n", sizeof(s)); printf("문자열t의 길이:%d\n", strlen(t)); printf("sizeof(t) :%d\n", sizeof(t)); return 0; }

1.6 대소문자 변환 tolower(c); 변수 c에 저장된 문자가 A~Z일 때 소문자로 변환 toupper(c); 변수 c에 저장된 문자가 a~z일 때 대문자로 변환 헤더파일 <ctype.h>가 필요 변환 방법은 해당 문자의 ASCII 코드 값을 변경한다. A(65), a(97), 97-65=32 대문자를 소문자로 변환시 +32, 소문자를 대문자로 변환시 –32

[예제 112] 문자열 대소문자 변환 #include <stdio.h> #include <ctype.h> #include <string.h> void upper_to_lower(char str[]); int main(void) { char test[10]="12AbCdEf"; upper_to_lower(test); printf("%s\n", test); return 0; } void upper_to_lower(char str[]) int i, length; length=strlen(str); for(i=0;i<length;i++) str[i]=tolower(str[i]);

1.7 문자열 역순으로 출력 영문의 경우 각 문자가 순서대로 저장되어 있으므로 제일 마지막 배열 첨자에서 시작하여 첫 번째 배열 첨자인 0까지 출력 제일 마지막 첨자는 (문자열의 길이 – 1)로 계산한다 for(i=strlen(st)-1; i>=0; i--); printf(“%c”, st[i]);

[예제 113] 영문문자열 역순출력 #include <stdio.h> #include <string.h> void reverse_english(char *st); int main(void) { char s[]="swimming"; printf("순방향 출력: %s\n", s); printf("역방향 출력: "); reverse_english(s); printf("\n"); return 0; } void reverse_english(char *st) int i; for(i=strlen(st)-1;i>=0;i--) printf("%c", st[i]);

[예제 113] 영문문자열 역순출력 한글 문자열을 역순으로 출력 for(i=strlen(st)-2; i>=0; i-=2); printf(“%c%c”, s[i], s[i+1]);

[연습문제 04] 프로그램 작성 한글 문자열을 역순으로 출력하는 프로그램을 작성 #include <stdio.h> #include <string.h> void reverse_hangul(char *st); int main(void) { char s[]="가나다라"; printf("순방향 출력: %s\n", s); printf("역방향 출력: "); reverse_hangul(s); printf("\n"); return 0; }

[연습문제 05] 프로그램 작성 문자열에 대해 소문자를 대문자로 변환하는 프로그램을 작성 #include <stdio.h> #include <ctype.h> #include <string.h> void lower_to_upper(char str[]); int main(void) { char test[10]="12abcdef"; lower_to_upper(test); printf("%s\n", test); return 0; }

[연습문제 06] 프로그램 작성 임의의 영문 문자열에 대해 소문자는 대문자로, 대문자는 소문자로 동시에 변환하는 프로그램을 작성 #include <stdio.h> #include <ctype.h> #include <string.h> void upper_lower_trans(char str[]); int main(void) { char test[20]="JahjdDF"; printf("origin : %s\n", test); upper_lower_trans(test); printf("result : %s\n", test); return 0; }