刚开始看字符设备驱动就发现C的功底不扎实啊。不急,边学边补……!
1、命令行参数main(int argc,char *argv[])的理解
argc:用于参数计数,其值表示运行程序时命令行参数的数目,其值至少为1,为1时则表示改程序后面没有命令行参数;
*argv[]:用于参数向量,是一个指向字符串数组的指针,其中每个字符串对应一个参数。
例如:
则会打印出
上述程序对应如下关系
argc = 3;
argv[0]--->"echo"
argv[1]--->"hello,"
argv[2]--->"world!"
argv[argc] = 0 /*ANSI标准要求argv[argc]的值为一空指针*/
|
如有:
./leds 2 0
则有:
argc = 3
argv[0] = "leds"
argv[1] = "2"
argv[2] = "0"
|
2、sscanf函数初识!
sscanf():从一个字符串中读取指定格式的相符的数据。
函数原型:
int sscanf(const char *s,const char *format,...);
与scanf()不同的是sscanf的输入字符来源于字符串s。
常见用法:
1、直接输入
char buf[512] = {0};
sscanf("123456","%s",buf);
printf("%s\n",buf);
结果为:123456
|
2、取指定长度的字符串。如在下例中,取最大长度为4字节的字符串
sscanf("123456 ", "%4s", buf); printf("%s\n", buf); 结果为:1234
|
3、取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。
sscanf("123456 abcdedf", "%[^ ]", buf); printf("%s\n", buf); 结果为:123456
|
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf); printf("%s\n", buf); 结果为:123456abcdedf
|
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf); printf("%s\n", buf); 结果为:123456abcdedf
|
阅读(2227) | 评论(0) | 转发(1) |