post by WHITEHATS
웹기반 정보보안 엔지니어 과정 160312 28번째 강의
7.연산자
7.연산자 (operator)
•연산자
-프로그램이 수행해야 하는 동작을 나타내는 기호
7.산술 연산자
7.% 연산자 사용 예제
•홀/짝수 구분
-15 % 2 = 1 → 홀수
-10 % 2 = 0 → 짝수
•배수 구분
-123 % 3 = 0 → 3의 배수
•자리수로 숫자 구분
-156 % 10= 6 → 1의 자리 수
-156 / 10 = 15 → 1의 자리를 제외한 나머지
-15 % 10 = 5 → 10의 자리 수
-15 / 10 = 1 → 1, 10의 자리를 제외한 나머지
-1 % 10 = 1 → 100의 자리 수
-1 / 10 = 0 → 자리수 구분 완료
•범위 안 임의의 숫자
-N % 100 = 0 ~ 99→ N값의 따라 0~99사이의 값이 반환 됨
7.산술 연산자 예제
7.대입 연산자 & 복합 대입 연산자
•대입 연산자
-연산의 결과를 변수에 저장하는 동작을 수행 함
오타! = 오른쪽 연산을 수행하고 결과값을 왼쪽의 변수에 대입
•복합 대입 연산자
-대입 연산자와 산술 연산자를 묶어놓은 연산자
7.대입 연산자 & 복합 대입 연산자 예제
7.관계 연산자
•관계 연산자
-두 값의 관계를 비교 함
-조건식에서 자주 사용 됨
-연산의 결과
--참(true)
---사용자 → 프로그램 : 0외의 모든 데이터
---프로그램 → 사용자 : 1
--거짓(false)
---사용자 → 프로그램 : 0
---프로그램 → 사용자 : 1
7.관계 연산자 예제
7.논리 연산자
•논리 연산자
-두 가지 이상의 관계 연산식을 하나의 조건식으로 연결
--여러 가지의 조건을 검사하고자 할 때 사용 됨
--범위를 검사하고자 할 때 사용 됨
-종류
--논리합(OR) → 연결된 조건 중 하나라도 참이면 전체 결과는 참
--논리곱(AND) → 연결되 조건 중 하나라도 거짓이면 전체 결과는 거짓
--부정(NOT) → 연산된 결과를 반대로 변환
7.논리 연산자 예제
7.증감 연산자
•증감 연산자
-값을 1씩 증가 또는 감소시키는 단항 연산자
-값을 순차적으로 증가 또는 감소해야 하는 경우 사용 됨
-증감연산자의 위치에 따라 전치/후치 연산이 수행 됨
•전치 연산
-증감 연산자가 피연산자 앞에 위치 함 → ++a, --a
-연산 후 대입
•후치 연산
-증감 연산자가 피연산자 뒤에 위치 함 → a++, a--
-대입 후 연산
7.증감 연산자 예제
7.증감 연산자 예제 2
1.a= 6, b=5, c=10, d=36
6+11-5 = 12
2.a=7 b=4 c=11 d = 12
a=1 b=0
1 || 1 * 12 / 12 d <-연산 할필요 없음 = 1
3.a=2 b=0 c=11 d=1
0 &&~ <-연산 할 필요 없음 d= 0
4.a=2 b=1 c=11 d=0
7.비트 연산자
•비트 연산자
-데이터를 2진수로 변환하여 비트 단위로 연산을 수행 함
-short, int, long 자료형 데이터만 연산이 가능 함
-하드웨어를 직접적으로 제어하거나 한글 등을 처리할 때 사용 됨
7.비트 연산자 예제 1
결과값 15가 나옵니다~
7.비트 연산자 예제 2
결과값 240나옵니다.
7.조건부 연산자
•조건부 연산자
-조건식의 결과에 따라 프로그램의 실행 흐름을 제어하는 연산자
--조건식의 결과가 참 → 뒤 ~ 까지의 명령을 실행?:
--조건식의 결과가 거짓 → 뒤 ~ 까지의 명령을 실행 함:;
7.조건부 연산자 예제
scanf에 number앞에 & 붙어야 함!! &number
(number%2) x ! -> (number=0%2) o !!
이건 잘 안쓴다! 이거 대신에 if문을 잘씀 !
7.기타 연산자
•콤마 연산자
-둘 이상에 변수를 동시에 선언할 때 사용 함
-둘 이상의 문장을 한 행으로 처리할 때 사용 함 → 소스코드의 가독성이 떨어짐(비 권장)
•sizeof 연산자
-데이터의 메모리 핛당 공간 크기를 byte단위로 반환하는 연산자 → 데이터 크기 확인
-자료형, 상수. 변수, 수식 등의 크기를 확인 함
7.sizeof 연산자 예제
SU1 + SU2 는 묵시적 형변환으로 FLOAT형으로 되어서 4바이트다
SIZEOF에(1.23456) 실수가 들어가버렸으므로 DOUBLE형임 8바이트다
7.연산자 우선 순위
8.문자열 함수
•문자열 제어 함수
-연산자는 정수, 실수, 단일문자만 이용 가능 함
-문자열을 이용하는 동작을 연산자를 이용하여 제어하기 어려움
-문자열 제어를 위한 기능을 표준 함수로 정의해서 사용 함 → 문자열 함수
*단일문자 하나를 입력하는 것 getchar(); -> 화면 대기 시킬 때 많이 사용한다.
•헤더 파일
-string.h
•종류
-문자열 복사 및 연결 → strcpy( ) <-전체복사, strncpy( ) <-지정된 크기 복사, strcat( ) <-문자열연결함수
-문자열 자르기 → strtok( )
-문자열 비교 → strcmp( )<-전체비교 , strncmp( ) <-지정된 크기만큼 비교
-문자열 크기 → strlen( ) <-문자열 배열의 크기
-문자열 찾기 → strstr( )
8.문자열 복사
•strcpy()
-원본 문자열과 동일한 문자열을 복사 함
--strSource의 문자열 데이터를 strDestination 배열에 덮어쓰기
-\0(null 문자)를 포함
--원본 문자열의 \0(null)문자까지 읽어서 배열에 복사 함
•strncpy()
-원본 문자열에서 지정된 크기만큼 문자열을 복사 함
--strSoutce의 문자열 데이터를 지정된 size까지만 strDestination 배열에 덮어쓰기
-\0(null 문자)를 포함하지 않음
--원본 문자열의 \0(null)문자 이전까지 읽어서 배열에 복사 함
--strSource가 size보다 작으면(strSource의 크기 < size) 나머지 값을 \0으로 패딩 처리 함
8.문자열 연결
•strcat()
-원본 문자열에 대상 문자열을 이어 붙임
--strDestination 배열 마지막 \0 위치에서 strSouce를 덮어 쓰기 함
-\0(null 문자)는 복사되지 않음
--원본 문자열의 \0(null)문자 이전 데이터까지 읽어서 배열에 복사한 후 마지막에 \0를 추가 함
•strncat()
-원본 문자열에 지정된 크기맊큼 대상 문자열을 이어 붙임
--strDestination 배열의 마지막 \0 위치에서 지정된 크기 만큼 strSource를 덮어 쓰기 함
8.문자열 자르기
•strtok()
-문자열의 지정된 구분자로 분리하여 토큰화 함
--token → 분리된 데이터
--separator → 구분자 (단일문자로만 이용해야 한다!!!!)
-구분자의 위치에 \0을 추가하여 데이터 추출 함 → 원본 데이터가 변경 됨
8.문자열 자르기 예제
Super
Super
나옴
8.문자열 비교
•strcmp()
-두 문자열을 비교
--strCompare1과 strCompare2의 데이터를 비교 함
-결과 반환값
--strCompare1 == Compare2 → 0
--strCompare1 > Compare2 → 양수
--strCompare1 < Compare2 → 음수
•strncmp()
-지정된 크기 만큼 두 문자열을 비교
--지정된 크기 만큼 strCompare1과 strCompare2의 데이터를 비교 함
-결과 반환값
--strCompare1 == Compare2 → 0
--strCompare1 > Compare2 → 양수
--strCompare1 < Compare2 → 음수
8.문자열 비교 예제
strncmp의 사이즈는 5로
8.문자열 크기
•strlen()
-문자열을 크기를 10진 정수로 반홖 함
--\0이전까지의 단일문자 개수를 반환 함
-문자열의 정확한 크기를 확인 및 지정하기 위해 많이 사용 됨
8.문자열 크기 예제
8.문자열 찾기
•strstr()
-대상 문자열에서 지정된 문자열의 위치(주소)를 구함
--str1에서 str2에 해당하는 문자를 비교한 후 일치하면 시작 주소를 반환 함
--지정된 문자열이 없으면 null을 반환 함
8.문자열 찾기 예제
9.제어문
9.제어문
•제어문
-프로그램의 실행 흐름을 제어하기 위해 사용되는 문법
--C언어 프로그램은 항상 순차적인 동작을 하므로 특정 명령을 건너 뛰거나 특정 명령을 반복하기 위해 제어문을 사용하게 됨
-조건식의 결과값을 이용하여 흐름을 제어 → 반드시 조건식이 사용 됨
•종류
-조건문
--if, switch-case
-반복문
--for, while
-ETC
--continue, break
--return, exit( )
9.조건문 (if)
•if문
-특정 기능을 위한 명령의 실행 여부를 조건식의 결과를 이용하여 지정 함
--조건식의 결과가 참 → 실행
--조건시의 결과가 거짓 → 무시
9.if문 예제
9.if문 실습
하얀모자의 정보보안 whitehats
'▶ 웹기반 정보보안 과정 > Programming' 카테고리의 다른 글
160316 30번째 강의 (0) | 2016.03.20 |
---|---|
160315 29번째 강의 (0) | 2016.03.19 |
160311 27번째 강의 (0) | 2016.03.16 |
160310 26번째 강의 (0) | 2016.03.16 |
160309 25번째 강의 (0) | 2016.03.16 |