Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C:调用main时传递的存储参数_C_String_Variables - Fatal编程技术网

C:调用main时传递的存储参数

C:调用main时传递的存储参数,c,string,variables,C,String,Variables,我想知道编译时如何在C中存储参数: 例如:我想存储2个用户输入字符串变量。 主管道的名称如下: ./main "Hello World!" World 我们应该存储Hello World!在string1和string2中的世界 假设我们只能使用main函数而不使用head函数,而不使用指针 编辑:以下是我仍然无法使用的代码: #include <stdio.h> #include <err.h> int main (int argc, char *argv[])

我想知道编译时如何在C中存储参数:

例如:我想存储2个用户输入字符串变量。 主管道的名称如下:

./main "Hello World!" World
我们应该存储Hello World!在string1和string2中的世界 假设我们只能使用main函数而不使用head函数,而不使用指针

编辑:以下是我仍然无法使用的代码:

#include <stdio.h>
#include <err.h>

int  
main (int argc, char *argv[]) 
{
    if (argc != 2)
    { 
    errx(1, "Error");
    }
    printf("Number of arguments = %i\n", argc);
    for (int k = 0; k < argc; k += 1)
        {
        printf("argv[%i] = %s\n", i, argv[i]);
        }
return 0;
}
实际上,主声明是int mainnt argc,char**argv;或int main argc,char*argv[];,其中:

argc是传递的参数数 **argv或*argv[]包含要传递的参数 因此,在声明main时,必须使用指针传递参数,没有其他方法。在您的示例中。/main Hello World!在世界范围内,该计划将获得:

argc是3 argv[0]是。/main argv[1]是Hello World! argv[2]是一个世界
你能发布你尝试过的代码吗?或者运行代码时收到的任何错误消息?我无法测试它,因为我无法存储变量。完全不使用指针也可以做到这一点Bowling先生,我看到了这一点,但不理解这两个字符串将如何存储,如何存储?在C中,如果不使用指针,则无法做到这一点。您需要它们从命令行和字符串中传递参数。好的,谢谢。但不知怎的,我在打印时出错了。。。我不打印fargv[%I]=%s,I,argv[I],但它给了我一个error@quiasdesamis2:除了在格式字符串末尾省略了换行符之外,到处都是零散的双引号。考虑使用单引号,或者使用您希望在格式字符串中出现的每个引号。您需要更像:printfargv[%i]=\%s\\n,i,argv[i];-请注意,这将删除显示在中的尾随双引号,其中表示:printfargv[%i]=%s,i,argv[i]。请尝试使用printfargv[%u]=%s\n,i,argv[i];,由于我是[0-2]范围内的未签名者,它仍然会给我2个错误,分别位于>i和>argv[i]我已经编辑了我的问题,请看一看,它没有编译