[英]In C, how to set an unsigned char array from argv
在下面的代码中,我希望通过程序参数提供myvar的值。
#include <stdio.h>
int main(int argc, const char **argv)
{
const unsigned char myvar[] = "myvalue";
return 0;
}
如何获取myvar以包含argv [1]中字符串的值?
如果您仅在阅读,则可以像这样复制argv[1]
的地址:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char **argv) {
const unsigned char *myvar = NULL;
// Be sure to check argc first
if (argc < 2) {
fprintf(stderr, "Not enough arguments.\n");
return EXIT_FAILURE;
}
myvar = (const unsigned char *)argv[1];
printf("myvar = %s\n", myvar);
}
如果要更改myvar
,则应使用strncpy
或类似方式复制字符串。
一个数组不能由指针或另一个数组初始化。 您只能使用初始化程序列表或(在char
数组的char
)字符串常量对其进行初始化。
您可以做什么用strcpy
复制另一个字符串的内容。 并且由于您将使用此数组作为加密函数的参数,因此它可能需要为固定大小。
char myvar[8] = { 0 }; // initialize all values to 0
strncpy(myvar, argv[1], 8); // copy the first 8 bytes
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.