strcpy缓冲区溢出
答案:1 悬赏:80 手机版
解决时间 2021-02-19 22:49
- 提问者网友:活着好累
- 2021-02-19 05:45
strcpy缓冲区溢出
最佳答案
- 五星知识达人网友:行路难
- 2021-02-19 06:25
不是太理解你的意思。
如果是要通过命令行参数来传递coupon的参数,那么一个参数执行一次就够了。 如果要多个参数,可以这样
int main(int argc, char ** argv)
{
if (argc < 2) {
printf("usage: %s your_name
", argv[0]);
return 0;
}
srand(time(0));
int i;
for(i = 1; i < argc; i ++)
coupon(argv[i]);
return 0;
}如果想在程序里面也可以输入 那么可以
void coupon(char * arg)
{
char * stuff[4] = {"iPad 2", "HTC Thuderbolt", "iPhone 4", "Motorola Xoom"};
printf("Our loyal customer %s:
", arg);
printf("Use this coupon to redeem your free %s!
", stuff[rand()%4]);
printf("Coupon number %d
", rand());
}
int main(int argc, char ** argv)
{
char name[16];
if (argc < 2) {
printf("usage: %s your_name
", argv[0]);
return 0;
}
srand(time(0));
strcpy(name, argv[1]);
do
{
coupon(name);
}while(scanf("%s", name) != EOF);
return 0;
}
如果是要通过命令行参数来传递coupon的参数,那么一个参数执行一次就够了。 如果要多个参数,可以这样
int main(int argc, char ** argv)
{
if (argc < 2) {
printf("usage: %s your_name
", argv[0]);
return 0;
}
srand(time(0));
int i;
for(i = 1; i < argc; i ++)
coupon(argv[i]);
return 0;
}如果想在程序里面也可以输入 那么可以
void coupon(char * arg)
{
char * stuff[4] = {"iPad 2", "HTC Thuderbolt", "iPhone 4", "Motorola Xoom"};
printf("Our loyal customer %s:
", arg);
printf("Use this coupon to redeem your free %s!
", stuff[rand()%4]);
printf("Coupon number %d
", rand());
}
int main(int argc, char ** argv)
{
char name[16];
if (argc < 2) {
printf("usage: %s your_name
", argv[0]);
return 0;
}
srand(time(0));
strcpy(name, argv[1]);
do
{
coupon(name);
}while(scanf("%s", name) != EOF);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯