嗨,我需要有关此的帮助:
int t;
t = 1;
char abc[256];
int main() {
scanf("%s", abc);
if(abc == "google") {
printf("%s \n", abc);
system("firefox");
} else
printf("error");
}
它总是返回错误,请有人帮忙!我已经尝试过了scanf("%c", &abc);
,我用相同的结果重写了大约5次。我是新来的,所以这可能是非常愚蠢的事情。
if(abc == "google") {
这并没有按照您的想法做。这将检查指向这两个字符串的指针在数值上是否相等。它们永远不会,因为它abc
是在堆栈中分配的,并且"google"
是字符串文字,因此具有静态存储持续时间。
您应该使用strcmp
像ameyCU指出的那样。
通常,不要这样使用scanf
,如果有人传递了大字符串,您编写的代码很容易受到缓冲区溢出攻击。
您可能想看看这篇关于如何scanf
安全使用的不错的文章。如何防止scanf导致C中的缓冲区溢出?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句