C를 사용하여 마지막으로 프로그래밍 한 이후로 꽤 오랜 시간이 걸렸지 만 포인터와 문자열과 혼동하는 것 같습니다. 조약돌 시계 얼굴을 쓰고 있어요. 나는 분 수의 자리를 1 자리수와 10 자리수로 분리하여 각각의 컨테이너에 넣어야합니다.페블 C, 지정된 위치에서 문자 가져 오기
그래서 분이 25 인 경우 2와 5를 분리하여 두 개의 개별 변수 char
에 넣어야합니다.
내가 쓴 코드는 제대로
static void update_time() {
time_t temp = time(NULL);
struct tm *tick_time = localtime(&temp);
static char d_minute[] = "00";
if (clock_is_24h_style() == true) {
strftime(d_minute, sizeof("00"), "%M", tick_time);
} else {
strftime(d_minute, sizeof("00"), "%M", tick_time);
}
text_layer_set_text(s_m_one_layer, &d_minute[1]); // ones' place for 2[5]
text_layer_set_text(s_m_ten_layer, &d_minute[0]); // tens' place for [2]5
}
&d_minute[1]
수익률 5입니다. 그러나 &d_minute[0]
은 전체 문자열 25를 반환합니다. 여기서 무엇을 놓치고 있습니까? char[]
의 첫 번째 문자에 어떻게 액세스 할 수 있습니까? 임시 해결책으로
char
및
strncpy
&d_minute[0]
를 선언했다.
static char min_ten[] = " ";
.....
strncpy(min_ten, &d_minute[0], 1);
....
text_layer_set_text(s_m_ten_layer, min_ten);
코드 냄새라고 생각합니다. C에서 수십 '값을 얻으려면 어떻게해야합니까?
& 'text_layer_set_text (s_m_ten_layer, d_minute [0]);'을 제거하면 컴파일러에서'text_layer_set_text '의 전달 인수 2를 반환합니다. 캐스트가없는 정수에서 포인터를 만듭니다'오류 – Devmonster