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
반응형
'Arduino > [3] Arduino Cording' 카테고리의 다른 글
[Arduino Cording] #5. Timer1 (0) | 2022.03.06 |
---|---|
[Arduino Cording] #4. 토글(toggle) (0) | 2022.03.05 |
[Arduino Cording] #3. attachPCINT(복합주기 설정 2) (0) | 2022.03.05 |
[Arduino Cording] #2. attachInterrupt(복합주기 설정 1) (0) | 2022.03.05 |
[Arduino Cording] #1. millis 함수 (0) | 2022.03.05 |