簡體   English   中英

將字符串附加到字符數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM