选秀.cpp

在比较两个字符串时,要用函数strcmp(),两个字符串相等时,返回0;

比较字符串时,不要用

if(A==b)

这样可能会出错

例如在写选秀.cpp时

int queen::Level()
{
    
    
  if( (18<=age && age<=25)            &&
      (165<=height && height<=178)    &&
      (sc=="火辣")                    &&
      (yz=="漂亮"))
   {
    
    printf("女王\n"); return 1;}

}

我写的颜值和身材都是通过恒等号来判断他们是否相等,其实这是错误的,因为我在定义颜值(yz)和身材(sc)时,是这样定义的

char yz[31];
char sc[31];

如果分别给yz,sc赋值

sc="火辣";
yz="漂亮";

火辣,漂亮分别占用这两个变量的前四个字节,剩下的空间都为0,所以通过恒等号判断两个字符串是否相同,是会出错 的。

通过gdb调试,将sc的值打印
在这里插入图片描述
就是这样的。因为没有初始化,会出现垃圾值。

猜你喜欢

转载自blog.csdn.net/qq_43403759/article/details/113380050
cpp