본문으로 바로가기

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

}