我對C非常陌生。我想用3個整數和「/」構造一個字符串。如何在c中使用int變量創建字符串變量
例如,
int a=01;
int b=10;
int c=2012;
char date = "a/b/c";
您可以請幫助,讓我知道什麼是正確的方法來做到這一點。
在此先感謝
我對C非常陌生。我想用3個整數和「/」構造一個字符串。如何在c中使用int變量創建字符串變量
例如,
int a=01;
int b=10;
int c=2012;
char date = "a/b/c";
您可以請幫助,讓我知道什麼是正確的方法來做到這一點。
在此先感謝
試試這個:
#include <stdio.h>
int main()
{
int a=1;
int b=10;
int c=2012;
char date[11];
sprintf(date, "%d/%d/%d", a, b, c);
printf("%s\n", date);
sprintf(date, "%02d/%02d/%04d", a, b, c);
printf("%s\n", date);
return 0;
}
這將打印日期兩種格式。第二個零墊,而第一個沒有。下面是輸出:
1/10/2012
01/10/2012
您應該分配足夠的緩衝區,並使用sprintf()
。
int a=01; /* this is octal value */
int b=10;
int c=2012;
char date[40]; /* 32-bit long integer will be at most 11 digits including sign in decimal */
sprintf(date, "%d/%d/%d", a, b, c);
非常感謝。有效 ! – Pri
使用sprintf
,這將寫入字符串,顧名思義:string print function
:
sprintf(date, "%d/%d/%d", a, b, c);
,幷包括頭stdio.h
。
而且,這樣做
char date;
使得date
一個角色,但你希望它是一個字符串。因此在其中分配內存:
char date [10];
它使它成爲一個字符串或一個包含10個元素的字符數組。但是,您只能存儲9個字符,因爲您必須爲null終止符或\0
保留一個元素。
如何sprintf
工作?
如果你困惑什麼sprintf
在做,基本上第一個參數就是sprintf
是印刷,第二個參數是要打印的內容,第三,第四,等參數都將被替換的變量由%d
,%s
等
爲了更好地解釋,請參閱this:
C庫函數
sprintf()
用於存儲格式的數據爲字符串。您也可以說sprintf()
函數用於使用格式化數據創建字符串作爲輸出。該sprintf()
函數的語法如下:int sprintf (char *string, const char *form, …);
您還可以使用itoa
,但它不是標準。
非常感謝。有效 ! – Pri
您不能在'char'中存儲字符串,該字符只能包含一個字符(通常爲一個字節)。 – MikeCAT
簡單地說:字符串是由'字符'的'數組'。 – nullpointer