我在这里有一段代码:
printf("Enter only parenthesis to arr or anything else to exitn");
scanf(" %c", &data);
if (data != '(' || data != ')' || data != '[' ||
data != ']' || data != '{' || data != '}')
{
printf("nExit scanning n");
return;
}
我的问题是,无论我做什么,当我输入任何括号时;如果";条件我也试过getchar.((,但也没用。你能告诉我怎么了吗我听不懂
问题很简单就解决了。
首先写入输入必须满足的条件
if (data == '(' || data == ')' || data == '[' ||
data == ']' || data == '{' || data == '}')
现在否定它
if ( !( data == '(' || data == ')' || data == '[' ||
data == ']' || data == '{' || data == '}' ) )
打开括号,你就会得到
if (data != '(' && data != ')' && data != '[' &&
data != ']' && data != '{' && data != '}')
{
printf("nExit scanning n");
return;
}
仅此而已。
另一种方法是使用报头<string.h>
中声明的标准字符串函数strchr
作为例如
if ( strchr( "()[]{}", data ) == NULL )
{
printf("nExit scanning n");
return;
}
或者,如果用户可以输入代码0,则
if ( data == ' ' || strchr( "()[]{}", data ) == NULL )
{
printf("nExit scanning n");
return;
}