배열 초기화하고 한꺼번에 다루기
//배열 선언하고 초기화
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:첫인수가 작을때
*를 붙이면 변수형의 포인터 변수라는 의미
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 : 포인터 변수로 중간에 값을 바꿀 수 있다.
fullName = String("Hong") + " " + "Gildong"; //hong gildong
fullName = "Hong" + " " "Gildong"; //error
String 오브젝트는 몇 개든 (+로) 연결할 수 있으며
연결할 대상 중 적어도 하나는 String 오브젝트 속성을 가져야 한다.
상수나 변수를 Sting으로 감싸도 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.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);