[英]Is there a way to pass strings like this in C?
我有一個接受字符數組(即字符串)作為參數的函數。
但是,整數變量的值也應作為字符串的一部分打印。
例如,如果我有這樣的功能:
int var=10;
void printStr(char str[])
{
printf("%s", str);
}
我需要用消息打印整數變量“ var”的值
“ var的值為%d”,var
我試過了
printStr( ("The value of var is %d", var) );
但這沒用。
有沒有一種方法可以在不將變量作為參數傳遞給printStr()
?
在這種情況下,輸出應為
var的值是10
似乎您需要函數sprintf
/ snprintf
來生成字符串。
嘗試這樣的事情:
char tempStr[30];
snprintf(tempStr, sizeof(tempStr), "The value of var is %d", var);
printStr(tempStr);
是你需要的嗎?
也許您會發現函數的可變數量的參數和GCC格式屬性對於構建事物很有用。 但是,您將需要對屬性使用GCC,並且沒有任何可移植到其他編譯器的計划。
但是,我不會弄亂這些事情,並且想出了一種無需此操作的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.