C언어 프로그래밍의 이해 Ch08. 배열과 문자열.

Slides:



Advertisements
Similar presentations
Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
Advertisements

1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
-Part2- 제3장 포인터란 무엇인가.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
개정판 누구나 즐기는 C언어 콘서트 제9장 포인터 출처: pixabay.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
5장 배열 작성자 : 변재현.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
5장. 참조 타입.
제 3장. C보다 나은 C++ II.
C 프로그래밍.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
포인터 활용 포인터 활용.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
제8장 배열 1부 8.1 배열 8.2 배열의 초기화 8.3 배열의 응용 8.4 정렬과 탐색 8.5 다차원 배열.
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
처음으로 배우는 C 프로그래밍 제4부 복합 데이터 형 제 8 장 배열, 주소, 포인터.
C#.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
포인터 1차원 배열과 포인터 2차원 배열과 포인터 문자열 배열과 포인터 포인터 배열
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
처음으로 배우는 C 프로그래밍 제4부 복합 데이터 형 제 7 장 배열.
5장 배열과 문자열 C 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
8주차: Strings, Arrays and Pointers
Chapter 08. 함수.
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
Canary value 스택 가드(Stack Guard).
에어 PHP 입문.
7주차: Functions and Arrays
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
함수, 모듈.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
구조체(struct)와 공용체(union)
Summary of Pointers and Arrays
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
13. 포인터와 배열! 함께 이해하기.
Pointers summary.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

C언어 프로그래밍의 이해 Ch08. 배열과 문자열

목차 8.1 배열 8.2 함수의 배열 전달 8.3 문자열과 문자열 배열 8.4 배열 초기화 8.5 문자열 처리 함수 Ch08. 배열과 문자열 목차 8.1 배열 8.2 함수의 배열 전달 8.3 문자열과 문자열 배열 8.4 배열 초기화 8.5 문자열 처리 함수 2

8.1 배열 배열(array) 같은 형의 여러 변수들에 대한 저장소 집합 배열의 구성 요소는 인덱스(또는 첨자)로 접근됨 Ch08. 배열과 문자열 8.1 배열 배열(array) 같은 형의 여러 변수들에 대한 저장소 집합 복수개의 연속적인 기억 공간 배열의 구성 요소는 인덱스(또는 첨자)로 접근됨 가장 낮은 주소는 배열의 첫 번째 요소이며 가장 높은 주소는 마지막 요소에 대응 C에서 가장 일반적인 배열이 널(null)로 끝나는 문자들의 배열인 문자열(string)이다 C에서 배열은 사용형식에 따라 다차원으로 구성할 수 있음 Tip: 배열의 필요성 정수형의 변수가 100개 필요 하다고 가정해 보자. 만약 배열이 없다면 정수형 변수 100개를 각각 선언해주어야 할 것 이다. 이렇게 “배열” 기능은 같은 형의 변수를 편리하게 선언 할 수 있다 3

Ch08. 배열과 문자열 8.1 배열 1차원 배열의 선언 var_name은 이 배열의 이름, type은 배열 구성 요소들의 기본형, size는 배열이 저장할 요소들의 수를 정의 balance라는 이름의 double형 100개의 구성요소를 가진 배열 p[0]부터 p[9]까지 10개의 요소를 가진 문자형 배열의 선언 - 배열의 이름은 전체 배열의 첫 번째 구성요소의 주소 - 배열 이름 “var_name”은 “&varname[0]"와 같음 - 주소이므로 포인터 연산과도 연관 type var_name[size]; double balance[100]; char p[10]; 4

8.1 배열 1차원 배열과 메모리 메모리 주소 1000부터 시작하는 일곱 개의 문자 배열 배열을 저장하는데 필요한 메모리의 양 Ch08. 배열과 문자열 8.1 배열 1차원 배열과 메모리 메모리 주소 1000부터 시작하는 일곱 개의 문자 배열 배열을 저장하는데 필요한 메모리의 양 char a[7]; 총 바이트수 = sizeof(기본 형) * 배열의 크기 5

8.1 배열 1차원 배열의 할당 숫자 0부터 99까지를 100개의 구성요소를 가진 정수형 배열에 저장 Ch08. 배열과 문자열 void main(void) { int x[100]; /* 이것은 100개의 정수를 위한 배열 선언이다. */ int t; for(t=0; t<100; ++t) x[t] = t; } 6

8.1 배열 1차원 배열의 할당 C에서는 기본적으로 배열의 경계를 체크하지 않음 Ch08. 배열과 문자열 8.1 배열 1차원 배열의 할당 C에서는 기본적으로 배열의 경계를 체크하지 않음 따라서, 프로그래머는 필요한 곳에서 배열 경계에 대한 검토를 해야 함 다음 코드는 컴파일 시에는 오류가 없지만, for 루프가 배열 count의 범위를 벗어나서도 실행하고 있기 때문에 부정확한 것 int count[10], i; /* 범위를 벗어남 */ for(i=0; i<100; i++) count[i] = i; 7

8.1 배열 따라하기1 Ch08. 배열과 문자열 #include <stdio.h> #define N 5 /* 배열의 크기 선언, 이런 형식의 배열 선언은 나중에 배열의 크기가 달라 질 때, 매우 유용한 프로그램 기법 */ int main(void) { int a[N]; // 배열의 선언 int i, sum = 0; for ( i = 0; i < N; ++ i) // 배열에 값 넣기 a[i] = 7 + i * i; for ( i = 0; i < N; ++ i) // 배열의 element 출력 printf("a[%d] = %d ",i, a[i] ); for ( i = 0; i < N; ++ i) // 배열 element의 합 sum += a[i]; printf("\n sum = %d\n", sum); // 합계 출력 return 0; } 8

8.1 배열 2차원 배열 2차원 배열의 선언 2차원 배열과 메모리 C는 다차원 배열들을 제공 Ch08. 배열과 문자열 8.1 배열 2차원 배열 C는 다차원 배열들을 제공 다차원 배열의 가장 간단한 형태가 2차원 배열 2차원 배열은 1차원 배열들에 대한 배열로 행(low)와 열(column)로 구성 2차원 배열의 선언 다음은 10행 20열 크기의 2차원 정수 배열 d를 선언한 것 2차원 배열과 메모리 배열을 저장하는데 필요한 메모리의 양 int d[10][20]; 바이트수 = 첫번째 인덱스의 크기 * 두번째 인덱스의 크기 * sizeof(기본 형) 9

Ch08. 배열과 문자열 8.1 배열 2차원 배열과 메모리 char a[4][3]; 10

8.1 배열 2차원 배열의 할당 1부터 12까지의 수를 2차원 배열에 저장하고 행 단위로 출력하는 예 Ch08. 배열과 문자열 #include <stdio.h> void main(void) { int t, i, num[3][4]; for(t=0; t<3; ++t) for(i=0; i<4; ++i) num[t][i] = (t*4)+i+1; for(t=0; t<3; ++t) { /* 출력하기 */ printf("%3d ", num[t][i]); printf("\n"); } 11

8.1 배열 따라하기2 Ch08. 배열과 문자열 #include <stdio.h> #define M 3 // 행의 갯수 #define N 4 // 열의 갯수 int main(void) { int a[M][N], i, j, sum = 0; for ( i = 0; i < M; ++i ) // element에 값을 할당 for ( j = 0; j < N; ++j ) a[i][j] = i + j; for ( i = 0; i < M; ++i ){ // element 값을 행 단위로 출력 printf("a[%d][%d] = %d ", i, j, a[i][j] ); printf("\n"); } 12

Ch08. 배열과 문자열 8.1 배열 따라하기2 for ( i = 0; i < M; ++ i ) // element 값의 합 for ( j = 0; j < N; ++j ) sum += a[i][j]; printf("\nsum = %d\n\n", sum); // 합계 출력 return 0; } 13

8.1 배열 다차원 배열 C는 컴파일러에 따라 다르지만, 2차원 이상의 배열 제공 Ch08. 배열과 문자열 8.1 배열 다차원 배열 C는 컴파일러에 따라 다르지만, 2차원 이상의 배열 제공 3차원 이상의 배열은 많은 메모리가 필요하기 때문에 사용하지 않음 10 X 6 X 9 X 4 크기의 4차원 문자 배열은 2,160바이트의 메모리 요구 만약 정수형(2byte)일 경우, 4,320바이트 메모리 사용 double형(8byte)일 경우 17,280 바이트 메모리 사용 type name[size1] [size2] [size3] …[size N]; 14

8.2 함수의 배열 전달 C에서는 기본적으로 특정 함수의 실매개변수로 배열 자체 보다는 주소 또는 포인터의 형식으로 전달 Ch08. 배열과 문자열 8.2 함수의 배열 전달 C에서는 기본적으로 특정 함수의 실매개변수로 배열 자체 보다는 주소 또는 포인터의 형식으로 전달 함수의 호출 시에는 배열의 포인터(또는 배열 이름)를 사용하여 배열을 함수에 전달 func1()으로 배열 i[10]의 주소인 배열 이름 i를 전달 void main(void) { int i[10]; func1(i); . } 15

8.2 함수의 배열 전달 배열을 함수에 전달 하기 포인터를 이용하기 해당 크기의 배열로 전달 Ch08. 배열과 문자열 void func1(int *x) /* 포인터를 사용하여 배열 전달 받기 */ { … } void func1(int x[10]) /* 해당 크기의 배열로 전달 받기 */ { … } 16

8.2 함수의 배열 전달 배열을 함수에 전달 하기 크기가 없는 배열로 선언 Ch08. 배열과 문자열 8.2 함수의 배열 전달 배열을 함수에 전달 하기 크기가 없는 배열로 선언 방법들은 결국 함수의 형식매개변수로 (배열로서가 아니라) 어떤 정수형 포인터를 받으려고 한다는 것을 컴파일러에게 알리는 것 배열에서 중요한 것은 첫 번째 요소의 위치이고, 다음 요소들은 연속적이라는 특성을 상기하면, 함수로 배열을 전달한다는 것은 그 배열의 첫 번째 주소만 알면 그 배열의 전체요소들을 접근 처리할 수 있다는 것 void func1(int x[]) /* 크기 없는 배열로 전달 받기 */ { … } 17

8.2 함수의 배열 전달 따라하기4 Ch08. 배열과 문자열 #include <stdio.h> #define N 5 // 배열의 크기 int main(void) { int a[N]; // 배열의 선언 int i, sum = 0; for ( i = 0; i < N; ++ i) // 배열에 값 넣기 a[i] = 7 + i * i; for ( i = 0; i < N; ++ i) // 배열의 element 출력 printf("a[%d] = %d ",i, a[i] ); sum = sum_array(a, N); // sum 변수에 sum_array() 함수의 리턴 값 할당 printf("\nsum = %d\n", sum); // 합계 출력 return 0; } 18

Ch08. 배열과 문자열 8.2 함수의 배열 전달 따라하기4 int sum_array( int a[], int n) // 배열 이름과 크기를 인자값으로 받는다. { int i, s = 0; for ( i = 0; i < n; ++i) // 배열 element의 합계 s += a[ i ]; return s; // 합계 리턴 } 19

8.3 문자열과 문자열 배열 문자열(string) 문자열이란 문자들의 집합 문자열(string)은 C의 기본 자료형이 아님 Ch08. 배열과 문자열 8.3 문자열과 문자열 배열 문자열(string) 문자열이란 문자들의 집합 문자열(string)은 C의 기본 자료형이 아님 C에서는 문자열을 위해서 문자형들을 수동적으로 1차원 배열로 구성하여 사용 문자열은 반드시 널(nul) 문자로 끝나야 함. 널은 ‘\0'로 나타내며, 이것은 컴파일러에게 문자들의 끝임을 알리는데 사용 문자열을 문자 배열로 선언할 때, 이들을 저장할 수 있는 최대의 문자수에 한 문자 길이를 더하여 선언 11개 문자들을 저장할 수 있는 배열 str을 선언 char str[12]; 20

8.3 문자열과 문자열 배열 문자열(string) C에서는 문자열에 대한 자료형을 포함하고 있지는 않지만, 문자열 상수는 허용 Ch08. 배열과 문자열 8.3 문자열과 문자열 배열 문자열(string) C에서는 문자열에 대한 자료형을 포함하고 있지는 않지만, 문자열 상수는 허용 문자열 상수(string constant)는 이중 인용부호(”)를 사용하는 문자들 다음은 11개 문자들을 저장할 수 있는 배열 str에 문자열 상수를 초기화 한 것 문자열 상수를 배열에 저장할 때는 끝에 수동적으로 널을 추가할 필요가 없다. 그 이유는 컴파일러가 자동적으로 이것을 추가해 주기 때문 char str[12]="hello There" 21

8.3 문자열과 문자열 배열 따라하기5 Ch08. 배열과 문자열 #include <stdio.h> int main(void) { char str[80]; int i; printf("80개 미만의 문자열을 입력 하세요 :\n"); gets(str); /* 문자열 입력 */ for(i=0; str[i]; i++) printf("%c", str[i]); /* 입력된 문자열 출력 */ printf("\n"); return 0; } I am Jerry~!! 22

8.3 문자열과 문자열 배열 문자열 배열 여러 개의 문자열들이 필요한 경우에서는 문자열들의 배열 사용 Ch08. 배열과 문자열 8.3 문자열과 문자열 배열 문자열 배열 여러 개의 문자열들이 필요한 경우에서는 문자열들의 배열 사용 여러 개의 문자열들은 문자형들의 2차원 배열로 구성 문자들의 2차원 배열에서 행의 인덱스 크기는 문자열의 수를 결정하고, 열의 인덱스 크기는 각 문자열의 최대 길이를 지정 다음 코드는 30개의 문자열과 각 문자열은 최대 79개 문자들의 길이를 가진 배열을 선언 2차원 배열로 구성된 문자열들 각각에 대한 접근 행을 표시하는 왼쪽 인덱스만을 지정 다음은 str_array에서 세 번째 문자열로 gets() 함수를 호출하여 읽어 들이는 것(상용 C/C++ 코드에서 많이 사용) 위의 문장은 다음 문장과 기능적으로 같은 것 char str_array[30][80]; gets(str_array[2]); gets(&str_array[2][0]); 23

8.3 문자열과 문자열 배열 문자열 배열 간단한 텍스트 편집기 Ch08. 배열과 문자열 #include <stdio.h> #define MAX 100 #define LEN 80 char text[MAX][LEN]; /* 매우 간단한 텍스트 편집기 */ void main(void) { register int t, i, j; printf("Enter an empty line to quit.\n"); for(t=0; t<MAX; t++) { printf("%d: ", t); gets(text[t]); if(!*text[t]) break; /* 빈 라인이면 break */ } for(i=0; i<t; i++) { for(j=0; text[i][j]; j++) putchar(text[i][j]); putchar('\n'); 24

8.3 문자열과 문자열 배열 따라하기6 Ch08. 배열과 문자열 #include <stdio.h> int main(void) { char text[10][80]; int i; for(i=0; i<10; i++){ printf("%d: ", i+1); gets(text[i]); } do{ printf("인텍스를 1과 10 사이에서 입력하세요.\n 종료를 원하시면 음수 를 입력하세요.\n"); scanf("%d", &i); i--; /* i의 값을 배열의 색인으로 사용하기 위해 조정한다. */ if(i>=0 && i<=9) printf("%s\n", text[i]); } while(i>=0); return 0; 25

8.4 배열 초기화 배열은 선언 시점에서 초기화할 수 있음 다음 예에서, 10개의 정수 배열은 1부터 10까지의 수로 초기화 Ch08. 배열과 문자열 8.4 배열 초기화 배열은 선언 시점에서 초기화할 수 있음 다음 예에서, 10개의 정수 배열은 1부터 10까지의 수로 초기화 배열 내부적으로는 0번째부터 9번째까지로 인덱스화 i[0]에는 1이 그리고 i[9]에는 10이 저장됨을 의미 type_specifier array_name[size1]...[sizeN] = {value_list}; int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 26

Ch08. 배열과 문자열 8.4 배열 초기화 문자열상수의 초기화 모든 문자열은 널(null)로 끝나기 때문에, 문자 배열의 크기는 이것까지 고려하여 충분히 긴 크기로 해야 함 문자열 상수를 사용할 때는 컴파일러에서 자동적으로 널 터미네이터를 제공 char array_name[size] = "string"; char str[9] = "I like C"; char str[9] = {'I', ' ', 'l', 'i', 'k', 'e', ' ', 'C', '\0'}; 27

8.4 배열 초기화 다차원 배열의 초기화 Ch08. 배열과 문자열 int sqrs[10][2] = { 1,1, 2,4, 3,9, 4,16, 5,25, 6,36, 7,49, 8,64, 9,81, 10,100 }; 28

8.4 배열 초기화 크기 없는 배열의 초기화 다음과 같이 오류 메시지 표를 구성하기 위해서 배열 초기화를 사용한다고 가정 Ch08. 배열과 문자열 8.4 배열 초기화 크기 없는 배열의 초기화 다음과 같이 오류 메시지 표를 구성하기 위해서 배열 초기화를 사용한다고 가정 각각의 오류 메시지에 따라 각 배열에 해당되는 문자들을 수동적으로 계산해야 함 char e1[12] = "Read error\n"; char e2[13] = "Write error\n"; char e3[18] = "Cannot open file\n"; 29

Ch08. 배열과 문자열 8.4 배열 초기화 크기 없는 배열의 초기화 크기 없는 배열을 사용하면 컴파일러가 문자열 초기화 상수 만큼씩을 각 배열들의 크기로 자동 계산해 줌 배열 초기화 시에 그 배열의 크기가 지정되지 않으면, 컴파일러는 모든 배열의 초기화 내용을 저장할 수 있는 충분한 크기의 배열을 자동적으로 생성 이렇게 초기화된 경우에, 다음 문장은 그 다음의 내용을 출력 char e1[] = "Read error\n"; char e2[] = "Write error\n"; char e3[] = "Cannot open file\n"; printf("%s has length %d\n", e2, sizeof e2); 출력: write error has length 13 30

8.4 배열 초기화 크기 없는 배열의 초기화 다차원 배열에서는 가장 왼쪽의 인덱스만을 제외하고 나머지 인덱스들은 지정되어야 함 Ch08. 배열과 문자열 8.4 배열 초기화 크기 없는 배열의 초기화 다차원 배열에서는 가장 왼쪽의 인덱스만을 제외하고 나머지 인덱스들은 지정되어야 함 int sqrs[][2] = { 1,1, 2,4, 3,9, 4,16, 5,25, 6,36, … }; 31

8.5 문자열 처리 함수 C언어에서는 광범위하고 유용한 문자열 조작 함수들을 제공 Ch08. 배열과 문자열 8.5 문자열 처리 함수 C언어에서는 광범위하고 유용한 문자열 조작 함수들을 제공 이 함수들은 표준 헤더 파일 STRING.H를 사용 32

8.5 문자열 처리 함수 따라하기7 Ch08. 배열과 문자열 #include <stdio.h> #include <string.h> void main(void) { char s1[80], s2[80]; gets(s1); gets(s2); printf("lengths: %d %d\n", strlen(s1), strlen(s2)); if(!strcmp(s1, s2)) printf("The strings are equal\n"); strcat(s1, s2); printf("%s\n", s1); strcpy(s1, "This is a test.\n"); printf(s1); if(strchr("hello“, 'e')) printf("e is in hello\n"); if(strstr("hi there", "hi")) printf("found hi\n"); } // strcmp()는 비교된 문자열이 같으면 거짓(0)을 리턴 //그러므로 같음을 시험하기 위한 조건에서는 이것의 역으로 하는 //논리 연산자 !를 사용 string Enter string1 Enter 33

실습 과제 <1>따라하기1 ~ 따라하기8 실습 Ch08. 배열과 문자열 실습 과제 <1>따라하기1 ~ 따라하기8 실습 <2> 실습과제1: 사용자 입력으로 숫자를 입력 받아서 천 단위마다 콤마를 찍어 출력하는 프로그램 작성(p303) 34

Q&A 35