2020의 게시물 표시

C,C++ 기초 핵심설명/ 문자열과 str (문자열로 메뉴 만드는 예제)

이미지
 -strchr() 함수는 str에서 첫번째 ch문자를 찾고, strstr함수는 str에서 첫번째 substr 문자열을 찾고 그 위치의 문자의 주소를 반환한다 -strtok 함수는 str문자열을 delim 문자열에 있는 구분문자들을 이용해서 token으로 쪼개고 토큰 주소를 리턴  (구분자: space , . -) -문자를 입력하는 함수는 scanf() 함수인데 공백문자를 만날때까지만 읽어옴, 따라서 빈칸 포함한 문자열 입력하려면 get_s 함수나 fgets 함수를 이용 -한 줄의 문자열 출력하려면 puts함수 이용 ( int puts(const char* str); ) -문자열 포인터 : char* p = "asdad"; (주로 문자 배열을 가리키는 데 사용됨) -문자열 리터럴은 리터럴의 주소를 의미한다 (리터럴: 상수화변수에 대입되는 고정된 값) ,메모리에 할당됨 (값 변경 불가) -const char* 형의 문자열 포인터는 문자열 리터럴을 가르키는 용도로 사용 (변경불가) 정리하면 char* 의 포인터는 변경할 수 있는 문자 배열 가르킬 때, (문자열이 출력 매개변수 일 경우, 근데 이렇게 쓸 때는 배열 크기도 매개변수로 전달) const char* 형의 포인터는 변경할 수 없는 읽기전용 문자열을 가르킬 때 사용 (문자열 리터럴 같은, or 문자열이 입력 매개변수) -i번째 문자열의 j번째 문자에 접근하려면 행(문자열의 갯수) 인덱스와 열(문자열의 길이) 인덱스를 모두 사용한다 (2차원 문자배열)  문자열로 메뉴판 만드는 예제 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main(void) {     const char* str_menu[] = {                    //str_menu는 원소가 5개인...

C, C++ 기초 핵심 설명 / 배열 한번에 이해하기! (난수발생하여 배열을 비교하기 )

이미지
 -다른 변수를 선언해서 비슷한 일을 시키고 싶을떄 반목문을 사용할 수 없기 때문에  같은 데이터형을 메모리에 '연속적'으로 할당하고 같은 이름으로 사용->편의 증대 -배열 각 원소도 변수이며 따로 저장할 메모리 값 할당 -배열의 인덱스는 0부터시작 (0부터 하나로 치고 센다는 말),  -배열 이름 = 배열 전체에 대한 이름 -배열 크기는 0이 될수없고, 생략 할 수 없다, 크기를 알려면 sizeof(arr) 사용 -배열은 주로 for문과 함께 사용 (i = 0 , ~ i++) -배열의 내용이 같은지 비교하려면 for문으로 원소끼리 비교 (하나라도 다르면 안됨),( ex int is_equal과 if (x==y) 사용 -다차원 배열읜 인덱스를 n개를 사용한다. (int x[5][3] int x를 3개씩 5번 할당 열크기3 .행크기 5) -매개변수로 배열을 선언 할 때 배열 크기는 생략한다 예제 난수발생하여 배열을 비교하기 #include <stdio.h> #include <stdlib.h> #include <time.h>     //항상 변화하는 수를 얻는 난수화를 위해 가져오는 헤더 #define ARR_SIZE 100 //배열의 크기를 나타내는 매크로 상수 int main(void) { srand(time(NULL));   //srand와 time 함수로 시간흐르며 계속 변하는 난수생성 int x[100];   // 크기가 100인 int 배열을 생성 int y[100]; int size = 0; //배열의 크기 (원소의 갯수) 를 저장할 변수 int i; int is_equal; for (int i = 0; i < 100; i++) { x[i] = rand(); y[i] = rand(); } if (x == y) printf("두 배열이 주소가 같습니다"); el...

C/C++ 프로그래밍 기초 // if else, else if 조건문 사용하기 , 계산기 프로그램 만들기

이미지
 if else 문은 if 조건식이 참이면 if 다음 문장 수행하고 거짓이면 else 다음문장을 수행한다 ->if else의 else블록안에 바로 또 다른 if문만 들어 있을 때, else if 로 작성할 수 있다. else if는 여러가지 조건을 순서대로 검사한다 / else앞의 if문의 조건이 거짓일 때만 사용, 마지막엔 else 가 사용 계산기 프로그램 예제 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { double x, y; // 피연산자 저장할 실수형 변수 char op; // 연산자 기호를 문자로 저장할 변수 double result = 0; //계산 결과를 저장할 변수 printf("수식?"); scanf("%lf %c %lf" &x, &op, &y) //double 변수 입력받으려면 서식 지정자를 %lf 이용 if (op == '+') result = x + y; else if (op == '-') result = x - y; else if (op == '*') result = x * y; else if (op == '/') result = x / y; else {              // 위 수식이 아닌경우 printf("잘못된 수식입니다\n"); return 1; // 비정상 종료 시 0이아닌값으로 리턴시킨다 } printf("%f%c%f = %f\n", x, op, y, result); }

C/C++ 프로그래밍 기초 // if 조건문을 사용하기 (제어문)

이미지
 if 문은 () 안에 있는 조건식이 참이면 주어진 문장을 수행한다 -> 참/거짓에 따라 실행이 나위었다가 if다음 문장에서 합쳐진다 -수행할 문장이 여러개면 블록마다 {}로 묶어준다  #define _CRT_SECURE_NO_WARNINGS  // VS 19에서 scanf를 사용하려면 반드시 필요 #include <stdio.h> int main(void) { int score; printf("점수?"); scanf("%d", &score); if (score < 70) printf("재시!\n"); }