[英]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 *
並對其進行解析。 您的示例的明顯選擇是strcpy或memcpy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.