我想要做的是将命令行参数作为单个字符添加到数组中。因此,当用户运行程序./program bacon
“培根”存储在一个数组中
array k[]= {'b', 'a', 'c', 'o', 'n'};
我希望我解释得足够好我是编程新手。
我想要做的是将命令行参数作为单个字符添加到数组中。因此,当用户运行程序./program bacon
“培根”存储在一个数组中
array k[]= {'b', 'a', 'c', 'o', 'n'};
我希望我解释得足够好我是编程新手。
所以,我知道你是编程新手,但这看起来很熟悉,不是吗?
int main (int argc, char **argv) {
// ...
}
char **argv
是指向 char 指针的指针,但出于您的目的,您可以认为它等同于char *argv[]
. 区别很微妙,但值得注意,因为这个警告对于理解字符串在 C 中的工作方式至关重要。char *argv[]
被显式键入为 char 指针数组,虽然char **argv
可能是一个数组,但在你尝试访问它之前你不会知道像这样。鉴于它是您的主要功能,可以安全地假设它总是会被适当地实例化。
无论如何,越过切线,我们的char **argv
main 函数中有一个以 null 结尾的字符串数组。从您的问题中,我可以看到我们应该遵循的简单路径。我将假设只期望一个论点(否则您应该能够实施处理不同情况的案例)。
argv[1]
获取传递给我们程序的第一个参数 ( ) 的长度。argv[1]
.在我们的函数中,我们存储tomain
的长度,并声明我们的 size 数组。然后,我们逐个字符地遍历第一个字符串,并将每个字符存储到数组的下一个开放槽中。最后,我们重复循环并打印出数组中的每一项,以便验证它是否有效。argv[1]
n
n
int main (int argc, char *argv[]) {
int n = strlen(argv[1]);
char arr[n];
int i;
for (i = 0; i < n; i++)
arr[i] = argv[1][i];
for (i = 0; i < n; i++)
printf("%c ", arr[i]);
printf("\n");
}
希望这可以帮助。干杯。
使用传递给 main 的参数。您已经获得了一个数组 argv[1] 来为您执行此操作。我认为你最好阅读一些像这样的文章来开始 - http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html