在比较两个字符串时,要用函数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的值打印
就是这样的。因为没有初始化,会出现垃圾值。