2016-06-01 7 views
0

안녕하세요이 두 변수 timer1hh = 9 timer1mm = 7아두 이노는 가입이 개 INT의

나는 그들을 함께 결합, 문자열로 변환하고 나는 아래의 코드를 사용하여 "97"얻을 :

String string1= String(timer1hh); 
String string2= String(timer1mm); 
String string3;   

string3=string1+string2;  
Serial.println(string3); 

괜찮아요.하지만 그 아래 10 인 경우 앞에 0을 추가하려고합니다.

"0907"

그래서 결국 나는 "0907"사이의 "경우"를 수행하고, 이런 일을 "2034"를 말할 수 있어야합니다. 임씨는 "% 02"을 사용하는 sprintf와 완전히 어긋나며 단순히 나를 위해 일하지 않습니다.

도움이 될 것입니다. 피트

+0

아니 솔루션,하지만이 번호를 누르고 두 개의 문자열을 비교하는 것보다 두 숫자를 비교하는 것이 훨씬 더 쉽다 . 내가 너라면, 나는 문자열로 변환하지 않고 자정 이후 2 분을 몇 분으로 변환 할 것이다. 이것은 비교를 쉽게 만듭니다. 예. 9.07am은 (9 * 60) +7이고 8.34pm은 (20 * 60) +34입니다. "0907"및 "2034"보다 547 및 1234와 비교하기가 훨씬 쉽습니다. 또한 printf는 "% 02"을 사용하지 않고 "% 02d"를 사용합니다. - 한 번에 한 번에 시간을 인쇄 할 수 있습니다 :'printf (" % 02d % 02d ", t1h, t1m);' – enhzflep

답변

0

이 스케치를 참조하십시오

void setup() { 

    int timer1hh = 9, timer1mm = 7; 

    Serial.begin(9600); 
    //String string1= String(timer1hh); 
    //String string2= String(timer1mm); 
    //String string3;   

    char out1[5]; 
    sprintf(out1,"%.2d%.2d", timer1hh,timer1mm ); 
    String string3(out1); 

    //string3=string1+string2;  
    Serial.println(string3); 
} 

void loop() {} 

직렬 출력 : 0907