2
如何在C中建立一個字符串,其中包含參數?有沒有類似fprintf
的語法來做到這一點?比如這裏有一個小testProg.c
:在fprintf語法中定義字符串
int main(int argc, char *argv[]) {
printf("You are running %s program.\n", argv[0]);
// It will print: "You are running testProg.c program.\n"
char myString[];
// I want the string printed by printf to be saved inside myString[]
// ...
}
看起來這正是我一直在尋找的!沒有辦法使用所需的確切大小,而不是使用'100'作爲數組大小?謝謝! – Robb1
無論如何您需要分配緩衝區大小(靜態或動態) - 對於這種簡單情況,靜態緩衝區就足夠了 – artm
如果您想使用動態或VLA分配:'snprintf'返回寫入的字符數。如果字符串被截斷,它將返回緩衝區足夠大的情況下寫入的字符數。當size爲0時,將'NULL'作爲緩衝區是合法的,所以你可以先調用'n = snprintf(NULL,0,...)',分配'n + 1'個字節,然後再次調用'snprintf'與緩衝區和正確的大小。 –