아두이노 Arduino

[아두이노] String함수: toInt, toFloat, toUpperCase, toLowerCase

끄적끄적아무거나 2022. 5. 2. 18:55
반응형

 

목차

     

     

    이번 포스트는 문자열 (String) 관련 함수들 중에 중요 함수에 대해 알아보도록 하겠습니다. 함수를 코드로 돌리고 확인은 Arduino에서 제공하는 시리얼 모니터로 하겠습니다. 시리얼(Serial) 통신 사용 방법 및 모니터링 방법은 아래 링크를 참조하시면 됩니다. (https://scribblinganything.tistory.com/512)


     

     

    Arduino 문자열 toInt 함수

     

    toInt 함수(Function)는 문자열(String)을 정수(Integer)로 변경해줍니다. 정수로 변경 뒤에 수식(math)으로 처리하기 용이 합니다. 아래 예제 코드를 통해 쉽게 이해할 수 있습니다.

     

    참고로 Integer 정수는 8비트(bits) 보드에서 사이즈는 2바이트로 16비트 입니다. 

     

     

    예제 코드>>

    void setup() {
      Serial.begin(9600);
      while (!Serial) {
        ;
      }
    }
    
    void loop() {
      
      String a_var = "100";
      String b_var = "10";
      String c_var = a_var + b_var;
      int d_var = a_var.toInt() + b_var.toInt();
      delay(300);
      Serial.println("c_var : " + c_var);
      Serial.println("d_var : " + String(d_var));
    }

    12번 라인: 문자열끼리 더하기를 진행하였습니다.

    13번 라인: 문자열을 숫자로 바꿔서 더하기를 하였습니다.

     

     

    결과>>

     

     

     

     

    Arduino 문자열 tofloat 함수

     

    tofloat 함수는 함수명이 말해주는 바와 같이 문자열(String)을 실수로 변경해줍니다. 실수형은 8비트 보드에서 4바이트 사이즈를 가집니다. 그러므로 2^32 의 공간을 가지게 됩니다.

     

    음수 양수 각 각 2^31 공간을 가지게 됩니다. 

     

     

    예제 코드>>

    void setup() {
      Serial.begin(9600);
      while (!Serial) {
        ;
      }
    }
    
    void loop() {
      
      String a_var = "100.2";
      String b_var = "100.3";
      String c_var = a_var + b_var;
      float d_var = a_var.toFloat() + b_var.toFloat();
      delay(300);
      Serial.println("c_var : " + c_var);
      Serial.println("d_var : " + String(d_var));
    }

    12번 라인: 문자열끼리 더하기를 진행하였습니다.

    13번 라인: 문자열을 실수(float)로 바꿔서 더하기를 하였습니다.

     

     

    결과>>

     

     

     

     

     

    Arduino 문자열 toUpperCase, toLowerCase 함수

     

    toUpperCase를 사용할 경우 문자열의 소문자를 대문자로 변경하고 반대로 toLowerCase를 사용할 경우 문자열의 대문자를 소문자로 변경해줍니다.

     

    예제 코드>>

    void setup() {
      Serial.begin(9600);
      while (!Serial) {
        ;
      }
    }
    
    void loop() {
    
      delay(300);
      String a_var = "Hello, World";
      Serial.println("a_var : " + a_var);
      a_var.toUpperCase();
      Serial.println("a_var.toUpperCase : " + a_var);
      a_var.toLowerCase();
      Serial.println("a_var.toLowerCase : " + a_var);
    }

     

    결과>>

     

     

     

    참고로 return 값으로 출력이 나오는지 자체 변수에 함수가 적용되는지에 따라 문법에러가 발생할 수있으니 조심해야 합니다. 

     

    아래 1번째 줄 예제와 같이 a_var에 대문자로 변경하는 toUpperCase 함수가 바로 적용되는 경우에 2번째 줄과 같이 작성하면 아래와 같은 에러 메세지가 발생합니다.

      a_var.toUpperCase();
      String b_var = a_var.toUpperCase();

     

    에러메세지>>

    exit status 1
    conversion from 'void' to non-scalar type 'String' requested

     

     

    반응형