C++ 문법

문주은·2020년 12월 30일
1

메디컬IOT

목록 보기
3/13

1. 배열 선언

  • 배열 초기화하고 한꺼번에 다루기

    //배열 선언하고 초기화
      float temp[3] = {23,5,34,34,2};
    
      //함께 변수를 선언하고 초기화
      float sum = 0;
    
      //배열 전체의 합을 구함
      for(int i=0; i<3; i++){
        sum = sum+i;
      }
      float ave = sum/3;  
      //sum=92.20, ave=30.73
  • 배열 0으로 초기화

    float temp[3] = {}; //모든 요소가 0으로 초기화
  • char 배열
    아두이노에서 한글을 크기가 3byte로 char 변수에 보관할 수 없다.

    strcpy(char배열, char배열|char포인터)  //첫 인수에 두번째 인수의 값을 복사
    strcat(char배열, char배열|char포인터)  //첫 인수에 두번째 인수의 값을 덧붙임
    strlen(char배열|char포인터)	     //인수의 문자 개수를 돌려줌
    strcmp(char배열|char포인터, char배열|char포인터)  //1,0,-1 돌려줌
    //1: 첫인수가 클때, 0: 두인수가 같을때, -1:첫인수가 작을때

2. char 포인터

*를 붙이면 변수형의 포인터 변수라는 의미
char
는 메모리 어딘가의 문자열 주소를 보관
char 포인터는 중간에 값을 바꿀 수 있다.

char nm[8] = "Gildong";
char *family = "Hong";
char *fullName;
fullName = nm;			//fullName = Gildong
fullName = family;		//fullName = Hong
fullName = "Hong Gildong";	//fullNmae = Hong Gildong
nm = "Hong Gildong";		//error. nm은 상수라서 변경 불가

char nm[8] : 상수
char *family : 포인터 변수로 중간에 값을 바꿀 수 있다.

3. String 클래스

fullName = String("Hong") + " " + "Gildong";	//hong gildong
fullName = "Hong" + " " "Gildong";			//error

String 오브젝트는 몇 개든 (+로) 연결할 수 있으며
연결할 대상 중 적어도 하나는 String 오브젝트 속성을 가져야 한다.
상수나 변수를 Sting으로 감싸도 String으로 변환 가능하다.

  • String에서 요소들 골라내기

    String.indexOf("찾을 문자열"); //처음부터
    String.indexOf("찾을 문자열",찾기 시작하는 위치);

      void setup(){
          Serial.begin(115200);
          Serial.println();
          String longStr = "9:08:35,27.6";
          int p1 = longStr.indexOf(":");		//p1=1
          int p2 = longStr.indexOf(":",p1+1);	//p2=2
          int p3 = longStr.indexOf(",");		//p3=7
      }
  • String에서 값 골라내기

    String.substring(시작 위치) //시작-끝까지
    String.substring(시작 위치, 인수2 앞까지)

    //p1+1부터 p2 앞 글자까지 잘라낸다.
    String hStr = longStr.substring(p1+1,p2);
    int h = hStr.toInt();	//정수형으로 변환
    float t= hStr.toInt();	//float형으로 변환
    Serial.println(h);
    Serial.println(t);
profile
Data Engineer

0개의 댓글