我試圖將PIN(PIN中有數據)複製到溫度。 (假設PIN總是小於溫度)複製一個字符串時這個工作嗎?
const char * PIN;
....
char [10] temp ="";
int i = 0;
while (*(PIN+i)) {
temp[i] = (PIN+i)*;
i++;
}
如果我像處理指針那樣處理溫度,它也可以嗎?
long int res = strtol (&temp, NULL, 10);
我試圖將PIN(PIN中有數據)複製到溫度。 (假設PIN總是小於溫度)複製一個字符串時這個工作嗎?
const char * PIN;
....
char [10] temp ="";
int i = 0;
while (*(PIN+i)) {
temp[i] = (PIN+i)*;
i++;
}
如果我像處理指針那樣處理溫度,它也可以嗎?
long int res = strtol (&temp, NULL, 10);
有幾件事情,
溫度=「\ 0」 請問字符串中居然放了兩個\ 0,由報價隱含的一個你寫的,和一個。
PIN +我需要解除引用(帶*),否則它將繼續運行,除非您可以保證在地址空間末尾有空指針。
while (*(PIN+i))
然後爲了複製字符而不是指針,賦值語句也應該被解除引用。
temp[i]=*(PIN+i);
i++; // Because the pointer needs to be incremented
此外,爲什麼你不會只使用strcpy?或strncpy?
您需要取消引用指針PIN + 1,如下所示:「*(PIN + i)」或「PIN [i]」。僅使用C庫函數會更簡單:「strcpy(temp,PIN);」。 – 2012-01-31 04:35:20