c语言命令行参数字符串,c语言中命令行参数argc,argv

最近更新:26th 4月, 2015

开始

int main(int argc, const char * argv[])

在学习C语言的时候,大家都是编写一个程序,然后在终端运行查看结果,输入数字等等……不知道大家有没有尝试过让你编写的程序能够像系统命令那样接受参数呢?比如说:ls -al这样子。

如果想的话,就像上文那样来声明吧!

其中:

argv: 指针的指针

argc: 整数

举个栗子

假设程序的名称为test,当只输入test,则由操作系统传来的参数为:

argc = 1,表示只有一程序名称;

argc只有一个元素,argv[0]指向输入的程序路径及名称:./ test

当输入test para_1,有一个参数,则由操作系统传来的参数为:

argc = 2,表示除了程序名外还有一个参数;

argv[0]指向输入的程序路径及名称;

argv[1]指向参数para_1字符串

当输入test para_1 para_2 有2个参数,则由操作系统传来的参数为:

argc = 3,表示除了程序名外还有两个参数;

argv[0]指向输入的程序路径及名称;

argv[1]指向参数para_1字符串;

argv[2]指向参数para_2字符串;

so,以此类推~

结合实际栗子来讲:

1

intmain(intargc,constchar*argv[])

char *argv[]: argv是一个指针数组,元素个数是argc,存放的是指向每一个参数的指针,第一个元素即argv[0]为程序运行的全路径名,从二个元素(argv[1])开始,是每一个参数的名称,最后一个元素为NULL。总的来说,即:

* argv: 字符串数组

argv[0] 为程序运行的全路径名

argv[1] 为执行程序名后的第一个字符串;

argv[2] 为执行程序名后的第二个字符串;

argv[argc]为NULL。

int argc: 表示argv的大小,是实际参数个数+1,其中+1是因为argv[0]是编译后的可执行文件名

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

/*program name EXAMPLE.EXE*/

#include

#include

main(intargc,char*argv[],char*env[])

{

inti;

printf("These are the %d command- line arguments passed to

main:\n\n",argc);

for(i=0;i<=argc;i++)

printf("argv[%d]:%s\n",i,argv[i]);

printf("\nThe environment string(s)on this system are:\n\n");

for(i=0;env[i]!=NULL;i++)

printf(" env[%d]:%s\n",i,env[i]);

}

./EXAMPLEfirst"I’m a good boy"c"last "stop

//注意: 可以用双引号括起内含空格的参数, 如本例中的: " argument with blanks"和"Last but one")。

//结果是这样的:

Thesearethe6command-lineargumentspassedtomain:

argv[0]:./EXAMPLE

argv[1]:first

argv[2]:I’magoodboy

argv[3]:c

argv[4]:last

argv[5]:stop

argv[6]:(NULL)

本文内容参考自这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值