본문 바로가기

Arduino/[3] Arduino Cording

[Arduino Cording] #6. 문자열 함수

728x90
반응형

아두이노 문자열 관련 함수 정리

아두이노에서 문자열(String) 객체는 다양한 텍스트 작업을 처리하기 위해 제공된다. 문자열 객체와 관련된 주요 함수들을 정리하고, 각 함수의 예제 코드도 함께 제공한다. 관련된 함수들은 비슷한 종류끼리 묶어 표로 정리하였다.

문자열 생성 및 초기화 함수

String(): 문자열 객체를 초기화하거나 복사한다.

 

함수 이름 설명 예제 코드
String() 문자열 객체 초기화 String str;
String(const char[]) C 문자열을 기반으로 문자열 객체 생성 String str = "Hello";
String(char) 단일 문자로 문자열 객체 생성 String str = 'A';
String(int/float, base) 숫자를 문자열로 변환하여 생성 String str = String(123, DEC);

문자열 연결 함수

문자열을 결합하거나 다른 형식의 데이터를 문자열로 변환하여 추가한다.

 

함수 이름 설명 예제 코드
concat() 두 문자열을 연결 str.concat(" World");
operator+= 문자열에 데이터를 추가 str += "!";

 

String str = "Hello";
str.concat(" World"); // str은 "Hello World"가 된다
str += "!";            // str은 "Hello World!"가 된다
 

문자열 비교 함수

두 문자열 간의 비교를 수행한다.

 

함수 이름 설명 예제 코드
equals() 두 문자열이 같은지 확인 str.equals("Hello");
equalsIgnoreCase() 대소문자 무시하고 비교 str.equalsIgnoreCase("hello");
compareTo() 사전식 순서로 문자열 비교 str.compareTo("World");

 

String str = "Hello";
bool isEqual = str.equals("Hello");         // true 반환
bool isIgnoreEqual = str.equalsIgnoreCase("hello"); // true 반환
int result = str.compareTo("World");        // 음수 반환 ("Hello" < "World")

문자열 검색 함수

특정 문자열이나 문자가 포함되어 있는지 확인한다.

 

함수 이름 설명 예제 코드
indexOf() 특정 문자 또는 문자열의 첫 번째 위치 반환 str.indexOf('l');
lastIndexOf() 특정 문자 또는 문자열의 마지막 위치 반환 str.lastIndexOf('l');
startsWith() 문자열이 특정 문자로 시작하는지 확인 str.startsWith("He");
endsWith() 문자열이 특정 문자로 끝나는지 확인 str.endsWith("lo");

 

String str = "Hello World";
int firstL = str.indexOf('l');     // 2 반환
int lastL = str.lastIndexOf('l');  // 9 반환
bool starts = str.startsWith("He"); // true 반환
bool ends = str.endsWith("ld");    // true 반환

문자열 수정 함수

기존 문자열을 수정하거나 원하는 부분을 대체한다.

 

함수 이름 설명 예제 코드
replace() 특정 문자열을 다른 문자열로 대체 str.replace("World", "Arduino");
toLowerCase() 모든 문자를 소문자로 변환 str.toLowerCase();
toUpperCase() 모든 문자를 대문자로 변환 str.toUpperCase();
trim() 문자열의 양쪽 공백 제거 str.trim();

 

String str = " Hello World ";
str.replace("World", "Arduino"); // str은 " Hello Arduino "가 된다
str.toLowerCase();                // str은 " hello arduino "가 된다
str.trim();                       // str은 "hello arduino"가 된다

문자열 추출 함수

문자열의 특정 부분을 가져오거나 분리한다.

 

함수 이름 설명 예제 코드
substring() 문자열의 특정 구간 추출 str.substring(0, 5);
charAt() 특정 위치의 문자 반환 str.charAt(1);
getBytes() 문자열을 바이트 배열로 변환 str.getBytes(buf, len);

 

String str = "Hello World";
String sub = str.substring(0, 5); // sub은 "Hello"가 된다
char ch = str.charAt(6);          // ch는 'W'가 된다

문자열 길이 및 메모리 함수

문자열의 길이나 메모리 사용 정보를 반환한다.

 

함수 이름 설명 예제 코드
length() 문자열 길이 반환 str.length();
reserve() 문자열 객체의 메모리 공간 예약 str.reserve(50);

 

String str = "Hello";
int len = str.length();  // len은 5가 된다
str.reserve(50);         // str은 50바이트의 메모리를 예약한다
 

기타 유용한 함수

추가적인 문자열 작업을 수행할 수 있다.

함수 이름 설명 예제 코드
toInt() 문자열을 정수로 변환 str.toInt();
toFloat() 문자열을 실수로 변환 str.toFloat();
c_str() 문자열을 C 문자열로 변환 const char* cstr = str.c_str();

 

String str = "123";
int num = str.toInt();     // num은 123이 된다
float fnum = str.toFloat(); // fnum은 123.0이 된다
const char* cstr = str.c_str(); // cstr은 "123"을 가리킨다

시리얼 모니터 출력 함수 정리

아두이노에서 데이터를 시리얼 모니터로 출력하기 위한 다양한 함수가 제공된다. 각 함수는 데이터를 직관적으로 확인할 수 있도록 출력 형식을 조정할 수 있다.

기본 출력 함수

함수 이름 설명 예제 코드
Serial.begin() 시리얼 통신 시작, 통신 속도 설정 Serial.begin(9600);
Serial.print() 데이터를 한 줄로 출력 Serial.print("Hello");
Serial.println() 데이터를 출력하고 줄바꿈 추가 Serial.println("World");

 

void setup() {
  Serial.begin(9600);           // 시리얼 통신 시작
  Serial.print("Hello ");      // "Hello " 출력
  Serial.println("World");    // "World" 출력 후 줄바꿈
}

void loop() {
  // 반복 실행하지 않음
}

출력 형식 지정 함수

함수 이름 설명 예제 코드
Serial.print(val, DEC) 10진수 형식으로 출력 Serial.print(123, DEC);
Serial.print(val, HEX) 16진수 형식으로 출력 Serial.print(123, HEX);
Serial.print(val, OCT) 8진수 형식으로 출력 Serial.print(123, OCT);
Serial.print(val, BIN) 2진수 형식으로 출력 Serial.print(123, BIN);

 

void setup() {
  Serial.begin(9600);
  int num = 123;
  Serial.print("Decimal: ");
  Serial.println(num, DEC); // 10진수 출력
  Serial.print("Hex: ");
  Serial.println(num, HEX); // 16진수 출력
  Serial.print("Octal: ");
  Serial.println(num, OCT); // 8진수 출력
  Serial.print("Binary: ");
  Serial.println(num, BIN); // 2진수 출력
}

void loop() {
  // 반복 실행하지 않음
}

기타 출력 함수

함수 이름 설명 예제 코드
Serial.write() 바이트 데이터를 출력 Serial.write(65);
Serial.printf() 형식화된 문자열을 출력 Serial.printf("Value: %d\n", 123);
Serial.parseInt() 문자열로 입력된 데이터를 정수로 변환 int value = Serial.parseInt();
Serial.parseFloat() 문자열로 입력된 데이터를 실수로 변환 float value = Serial.parseFloat();
Serial.readBytes(buffer, length) 지정된 길이만큼 데이터를 읽어 버퍼에 저장 byte count = Serial.readBytes(buffer, 10);
Serial.readBytesUntil(point, buffer, length) 특정 문자가 나올 때까지 데이터를 읽어 버퍼에 저장 byte count = Serial.readBytesUntil('\n', buffer, 10);

예제:

void setup() {
  Serial.begin(9600);
  char buffer[10];

  Serial.write(65);              // 문자 'A' 출력
  Serial.printf("Temperature: %.2f\n", 36.6); // "Temperature: 36.60" 출력

  int intValue = Serial.parseInt();            // 입력받은 문자열을 정수로 변환
  float floatValue = Serial.parseFloat();      // 입력받은 문자열을 실수로 변환

  byte bytesRead = Serial.readBytes(buffer, 10); // 버퍼에 데이터 읽기
  byte bytesReadUntil = Serial.readBytesUntil('\n', buffer, 10); // '\n'까지 읽기
}

void loop() {
  // 반복 실행하지 않음
}

 

728x90
반응형
댓글