簡體   English   中英

如何在c中從char *轉換為char []

[英]how to convert from char* to char[] in c

這是一個代碼示例

void something()
{
   char c[100];
   scanf("%s",c);
   char c2[100]=c;
}

我的問題是,當我做這個任務時,一個錯誤說我無法分配

char * "c"  to char[] "c2";

我怎樣才能完成這項任務?

你必須使用strcpy() (或類似的):

...  
char c2[100];
strcpy(c2, c);

您無法使用=運算符分配數組。

你需要使用strcpy()

char c2[100];
strcpy(c2, c);

更好的做法是使用strncpy(c2,c,100)來避免緩沖區溢出,當然也可以使用scanf(“%99s”,c)等限制數據輸入;

char []不是C中的有效值類型(它只是一個有效的聲明類型),因此你無法使用char []類型執行任何操作。 你所能做的只是將它們轉換成其他東西(通常是char * )並用它做一些事情。

因此,如果您想要對數組中的數據實際執行某些操作,則需要使用一些函數或操作來獲取char *並對其進行解析。 您的示例的明顯選擇是strcpymemcpy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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