繁体   English   中英

如何从 const char * 赋值给 char

[英]How to assign to char from const 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;
}

这将警告不兼容指针指向 integer 转换分配给 'char' 从 'const char *' [-Wint-conversion]

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

argv是一个常量字符串数组,而input是一个字符数组。 因此,您的第一步是通过执行此char *input[1000000]来创建字符串input数组,最后您必须先转换argv的每个const string ,然后再通过执行此input input[counter] = (char *)argv[counter]

由@David Ranieri 建议编辑

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

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

解决方案

#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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM