아두이노 Arduino

[아두이노] String함수: compareTo, equals, equalsIgnoreCase, length, replace

끄적끄적아무거나 2022. 4. 29. 08:55
반응형

 

목차

     

     

     

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

     

     

     

     

    Arduino 문자열 compareTo 함수

     

    compareTo 함수는 문자열(String)을 비교해서 동일한 경우 0을 return하고 다른 경우 ASCII 코드 차이 만큼을 return 합니다. 

     

    예제 코드>>

    void setup() {
      Serial.begin(9600);
      while (!Serial) {
        ;
      }
    }
    
    void loop() {
      
      String string_var = "hello";
      Serial.println(string_var.compareTo("hello"));
      Serial.println(string_var.compareTo("bye"));
    }

    10~12번 라인: hello 를 hello, bye와 비교 합니다.

     

     

    결과>>

    동일 문자에 대해서는 0을 return하였고 다른 문자는 6을 return 하였습니다.

     

     

     

     

     

     

     

    Arduino 문자열 equals, equalsIgnoreCase 함수

     

    이번에는 equals, equalsIgnoreCase로 문자를 비교하는 함수 입니다. 둘이 차이는 후자는 대문자 소문자 구분을 하지 않는 점입니다. 그리고 문자가 일치하면 1을 return하고 일치하지 않으면 0을 return 합니다.

     

    예제 코드>>

    void setup() {
      Serial.begin(9600);
      while (!Serial) {
        ;
      }
    }
    
    void loop() {
      
      String string_var = "hello";
      Serial.println("equals('hello'): " + String(string_var.equals("hello")));
      Serial.println("equals('HELLO'): " + String(string_var.equals("HELLO")));
      Serial.println("equalsIgnoreCase('HELLO'): " + String(string_var.equalsIgnoreCase("HELLO")));
    }

     

     

    결과>>

     

     

     

     

     

     

    Arduino 문자열 length 함수

     

    문자열의 길이를 확인하는 length 함수 입니다.

     

    예제 코드>>

    void setup() {
      Serial.begin(9600);
      while (!Serial) {
        ;
      }
    }
    
    void loop() {
      
      String string_var = "hello";
      Serial.println("length('hello'): " + String(string_var.length()));
    }

     

     

     

     

    결과>>

    hello 는 총 5개의 letter로 구성됩니다.

     

     

     

     

     

     

     

     

    Arduino 문자열 replace 함수

     

    replace 문장이 의미하듯이 두개의 인자 값을 받아서 첫번째 인자와 같은 문자를 두번째 인자로 바꿔 줍니다.

     

    예제 코드>>

    void setup() {
      Serial.begin(9600);
      while (!Serial) {
        ;
      }
    }
    
    void loop() {
      
      String string_var = "hello";
      string_var.replace("llo", "lp me");
      Serial.println(string_var);
    }

    11번 라인: replace는 별도의 라인에서 한번 처리해서 string_var 변수 값이 변화한다. 만일 아래와 같이 한줄에 print와 같이 진행하면 아래와 같은 에러 메세지가 발생하니 주의 하자

     

    에러코드>>

    C:\Users\forgo\Documents\Arduino\sketch_apr27a\sketch_apr27a.ino: In function 'void loop()':
    sketch_apr27a:11:59: error: invalid use of void expression
       Serial.println(String(string_var.replace("llo", "lp me")));
                                                               ^
    exit status 1
    invalid use of void expression

     

     

     

    결과>>

     

     

     

     

    반응형