我所试图做的就是添加一个命令行参数转换为一个数组作为indvidual字符。 因此,当用户运行该程序./program bacon
“腊肉”被存储在一个数组添加命令行字符串数组是不同的字符
array k[]= {'b', 'a', 'c', 'o', 'n'};
我希望我解释的不够好我是新来编程。
我所试图做的就是添加一个命令行参数转换为一个数组作为indvidual字符。 因此,当用户运行该程序./program bacon
“腊肉”被存储在一个数组添加命令行字符串数组是不同的字符
array k[]= {'b', 'a', 'c', 'o', 'n'};
我希望我解释的不够好我是新来编程。
所以,我知道你是编程新手,但肯定这看起来很熟悉,不是吗?
int main (int argc, char **argv) {
// ...
}
char **argv
是一个指向字符指针,但是你的目的,你可以认为这是char *argv[]
相当。所不同的是微妙的,但值得一提的,因为这需要注意的是要了解字符串C. char *argv[]
的工作是显式类型为char指针数组的方式是至关重要的,而char **argv
可能是一个数组,但你不会知道,直到你尝试像这样访问它。鉴于这是您的主要功能,可以认为这将始终适当地实例化。
无论如何,移动过去的切线,我们有我们的主要功能null结尾的字符串的char **argv
阵列。从你的问题,我可以看到一条我们应该遵循的简单路径。我会假定只有一个参数是可以预料的(否则你应该能够执行处理不同情况的案例)。
argv[1]
)的长度。argv[1]
中的字符填充数组。在我们main
功能,我们的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");
}
希望这会有所帮助。干杯。
谢谢,这帮助我了解到底发生了什么,我得到了它的工作! – Yamaha32088
使用参数传递给主。你已经得到一个数组argv [1],它为你做了这个。我想你读过一些文章像这样的上手,最好 - http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html
显示您的代码。 – Musa