如何从const char *赋值给char



我有以下C代码

int main (int argc, const char *argv[]){
int counter = 1;
char input[1000000];
while(argv[counter] != NULL){
input[counter] = argv[counter]
}
return 0;
}

从'const char *'中赋值给'char' [-Wint-conversion]

我可以循环并打印argv[counter]的值,所以我很困惑为什么我不能设置一个变量等于它们。

argv为const string数组,input为字符数组。因此,您的第一步是通过这样做👉char *input[1000000]来制作input字符串数组,最后您必须在将argv分配给input之前,通过这样做👉input[counter] = (char *)argv[counter]来转换const string

编辑建议@David Ranieri

您可以从argv中删除const以避免强制转换。

正如@NoDakker在评论区所说。你必须增加counter以避免无限循环。

<<p>解决方案/strong>
#include <stdlib.h>
int main (int argc, const char *argv[]){
int counter = 1;
char *input[1000000];
while(argv[counter] != NULL){
input[counter] = (char *)argv[counter];
counter++;
}
return 0;
}

最新更新