关于C语言的有趣问答

来源:互联网 发布:mac air windows 驱动 编辑:程序博客网 时间:2024/06/06 11:13
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 buffer 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;
}

0 0
原创粉丝点击