关于C语言的有趣问答
2014-07-22 12:58
246 查看
1、gets() 方法
问:以下代码有个被隐藏住的问题,你能找到它吗?
答:这个不显眼www.123uq.com的问题就是使用了 gets() 方法。此方法接受一个string类型参数,但是却没有检测此数值是否 有足够的空间来拷贝数据。所以这里我们一般用 fgets() 方法将来的更好。
#include<stdio.h>
int main(void)
{
char buff[10];
memset(buff,0,sizeof(buff));
gets(buff);
printf("\n The buffe
4000
r entered is [%s]\n",buff);
return 0;
}
2、strcpy() 方法
问:密码防护是很基本的功能,看看能否搞定下面这段代码?
#include<stdio.h>
int main(int argc, char *argv[])
{
int flag = 0;
char passwd[10];
memset(passwd,0,sizeof(passwd));
strcpy(passwd, argv[1]);
if(0 == strcmp("LinuxGeek", passwd))
{
flag = 1;
}
if(flag)
{
printf("\n Password cracked \n");
}
else
{
printf("\n Incorrect passwd \n");
}
retuwww.123vu.comrn 0;
}
问:以下代码有个被隐藏住的问题,你能找到它吗?
答:这个不显眼www.123uq.com的问题就是使用了 gets() 方法。此方法接受一个string类型参数,但是却没有检测此数值是否 有足够的空间来拷贝数据。所以这里我们一般用 fgets() 方法将来的更好。
#include<stdio.h>
int main(void)
{
char buff[10];
memset(buff,0,sizeof(buff));
gets(buff);
printf("\n The buffe
4000
r entered is [%s]\n",buff);
return 0;
}
2、strcpy() 方法
问:密码防护是很基本的功能,看看能否搞定下面这段代码?
#include<stdio.h>
int main(int argc, char *argv[])
{
int flag = 0;
char passwd[10];
memset(passwd,0,sizeof(passwd));
strcpy(passwd, argv[1]);
if(0 == strcmp("LinuxGeek", passwd))
{
flag = 1;
}
if(flag)
{
printf("\n Password cracked \n");
}
else
{
printf("\n Incorrect passwd \n");
}
retuwww.123vu.comrn 0;
}
相关文章推荐
- 12个关于C语言的有趣问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 《12个有趣的C语言问答》(4)
- C语言查遗补缺——关于自增运算符的有趣的例子
- 有趣的C语言问答
- C语言中关于指针,二维数组等的问题,一个有趣的发现
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答_sunyrising-ChinaUnix博客
- C语言查遗补缺——关于自增运算符的有趣的例子
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答
- 12个有趣的C语言问答