可能我的实践还不够,不知道老外写东西为什么总喜欢将main函数写成 int main(int argc, char *argv[]),再加上最近师弟问过我这个问题,所以今天将其学习后,呈现给大家。
argc这个变量存储的是你函数输入的变量个数,argv是一个数组指针,argv[0]存储的是你可执行程序的名称,从argv[1]....往后就是输入的变量。下面给出一个例子:
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int a = atoi(argv[1]);
int b = atoi(argv[2]);
printf("%d",a+b);
return 0;
}
当然切忌这个不是在vc下直接点击运行所能执行的程序,你需要在dos下找到你连接后的.exe 程序(别所你找不到exe在Debug下面)。如上输入就O了。
上面程序中atoi是将字符串转换成整数,这个好像面试经常考。那么我们就来亲自实现一下(当然我这个程序实现的比较粗略希望大家谅解,毕竟我还没有那么高的造诣)。
/*
问题描述 将字符串转换成整数
例如:
"345" 转换成345
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{
int sys = 1;
char *str = "343455";
int num = 0;
if(str[0]=='+'||str[0]=='-')
{
sys = (str[0] =='-')? -1:+1;
str++;
}
while(*str !='\0' )
{
if(*str > '9' || *str < '0')
{
printf("异常字符\n");
exit(0);
}
num = num*10 + (*str - '0');
str++;
}
num *= sys;
printf("%d\n", num);
}
OK这个问题结束了,随着学习的深入我会继续更新博客。我还是新手有错的地方,希望大家多多谅解。当然我发的每道程序都经运行,我会尽量保证不出错。