[英]Append string to char array
我有一個帶有字符數組的代碼,如下所示:
int main (int argc, char** argv)
{
char arr[] = "%55u%10$n";
return 0;
}
我希望通過用戶輸入的字符串動態設置10
,例如argv[1]
。
以下內容的正確語法是什么:
char arr[] = "%55u%" argv[2] "$n"; // which would basically be "%55u%10$n" if argv[1] == "10"
您可以使用sprintf()
:
#include <stdio.h>
int main (int argc, char** argv)
{
if (argc > 1)
{
char arr[20];
sprintf(arr, "%%55u%%%.12s$n", argv[1]);
...
}
return 0;
}
或者,使用strcpy()
和strcat()
(小心使用!):
#include <string.h>
int main (int argc, char** argv)
{
if (argc > 1)
{
char arr[20];
strcpy(arr, "%55u%");
strcat(arr, argv[1]);
// or: strcat_s(arr, sizeof(arr)-3, argv[1]);
strcat(arr, "$n");
...
}
return 0;
}
使用sprintf
。 確保轉義文字%
字符並確保您的緩沖區足夠大以容納結果字符串。
#include <stdio.h>
#include <string.h>
int main (int argc, char **argv) {
if (argc < 2) { return 0; }
char arr[strlen(argv[1])+8];
sprintf(arr, "%%55u%%%s$n", argv[1]);
printf("%s\n", arr);
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.