c语言如何将参数传递给main()函数?

Chr*_*s P -1 c atoi

我从《c 编程语言》一书中为练习 1-20 编写了一个程序。

该计划是:

#include <stdio.h>
#include <stdlib.h> /* for atoi() */
main(int argc, char *argv[]) {
    int c,i,n;
    if (argv[1])
        n=atoi(argv[1]);
    while((c=getchar())!=EOF) {
        if(c!='\t') {
            printf("%c",c);
        }else
        {
            for(i=1;i<=n;i++) {
                printf(" ");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在没有 atoi() 函数的情况下将参数传递给 c 语言中的 main() 函数?

Sor*_*ren 5

程序的所有参数都作为字符串传递,并argc告诉您有多少并argv包含实际参数。

如果你需要一个数值,你必须以某种方式转换它们,你可以像你一样使用 atoi,或者使用许多库之一来解析选项,比如getopt

你应该检查argc而不是检查argv[1],所以

if (argc >= 2)
    n=atoi(argv[1]);
Run Code Online (Sandbox Code Playgroud)

看看这个方便的指南。