Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;if语句中的字符串比较 关于一个简单的C++函数,我有个问题。 这是我的cpp文件: #include <string> #include <iostream> #include <stdio.h> #include <ros/ros.h> #include <json_prolog/prolog.h> using namespace std; using namespace json_prolog; int main(int argc, char *argv[]) { ros::init(argc, argv, "Knives"); Prolog pl; char M[]="drawer"; cout<<M<<endl; if(strcmp(M,"knife")==0) { string q= "rdfs_individual_of(M, 'http://knowrob.org/kb/knowrob.owl#TableKnife')"; PrologQueryProxy bdgs = pl.query(q); cout<< endl; for(PrologQueryProxy::iterator it=bdgs.begin(); it != bdgs.end(); it++) { PrologBindings bdg = *it; cout << "Knives individuals= "<< bdg["M"] << endl; } cout<< endl<< endl; } if(strcmp(M,"drawer")==0) { string q= "rdfs_individual_of(M, 'http://knowrob.org/kb/knowrob.owl#Drawer')"; PrologQueryProxy bdgs = pl.query(q); cout<< endl; for(PrologQueryProxy::iterator it=bdgs.begin(); it != bdgs.end(); it++) { PrologBindings bdg = *it; cout << "Drawer individuals= "<< bdg["M"] << endl; } cout<< endl<< endl; } return 0; }_C++_String Comparison - Fatal编程技术网

c++;if语句中的字符串比较 关于一个简单的C++函数,我有个问题。 这是我的cpp文件: #include <string> #include <iostream> #include <stdio.h> #include <ros/ros.h> #include <json_prolog/prolog.h> using namespace std; using namespace json_prolog; int main(int argc, char *argv[]) { ros::init(argc, argv, "Knives"); Prolog pl; char M[]="drawer"; cout<<M<<endl; if(strcmp(M,"knife")==0) { string q= "rdfs_individual_of(M, 'http://knowrob.org/kb/knowrob.owl#TableKnife')"; PrologQueryProxy bdgs = pl.query(q); cout<< endl; for(PrologQueryProxy::iterator it=bdgs.begin(); it != bdgs.end(); it++) { PrologBindings bdg = *it; cout << "Knives individuals= "<< bdg["M"] << endl; } cout<< endl<< endl; } if(strcmp(M,"drawer")==0) { string q= "rdfs_individual_of(M, 'http://knowrob.org/kb/knowrob.owl#Drawer')"; PrologQueryProxy bdgs = pl.query(q); cout<< endl; for(PrologQueryProxy::iterator it=bdgs.begin(); it != bdgs.end(); it++) { PrologBindings bdg = *it; cout << "Drawer individuals= "<< bdg["M"] << endl; } cout<< endl<< endl; } return 0; }

c++;if语句中的字符串比较 关于一个简单的C++函数,我有个问题。 这是我的cpp文件: #include <string> #include <iostream> #include <stdio.h> #include <ros/ros.h> #include <json_prolog/prolog.h> using namespace std; using namespace json_prolog; int main(int argc, char *argv[]) { ros::init(argc, argv, "Knives"); Prolog pl; char M[]="drawer"; cout<<M<<endl; if(strcmp(M,"knife")==0) { string q= "rdfs_individual_of(M, 'http://knowrob.org/kb/knowrob.owl#TableKnife')"; PrologQueryProxy bdgs = pl.query(q); cout<< endl; for(PrologQueryProxy::iterator it=bdgs.begin(); it != bdgs.end(); it++) { PrologBindings bdg = *it; cout << "Knives individuals= "<< bdg["M"] << endl; } cout<< endl<< endl; } if(strcmp(M,"drawer")==0) { string q= "rdfs_individual_of(M, 'http://knowrob.org/kb/knowrob.owl#Drawer')"; PrologQueryProxy bdgs = pl.query(q); cout<< endl; for(PrologQueryProxy::iterator it=bdgs.begin(); it != bdgs.end(); it++) { PrologBindings bdg = *it; cout << "Drawer individuals= "<< bdg["M"] << endl; } cout<< endl<< endl; } return 0; },c++,string-comparison,C++,String Comparison,与: 我对从char到const char[-fppermissive]的转换有一个问题 我如何解决它?试试这个: std::string M; cin >> M; 替换如下所示的行: if(strcmp(M,"drawer")==0) 为此: if (M == "drawer" ) 为什么要将chars(charm[]=…;)的数组更改为单个char(charm;)?除了另一个答案建议使用std::string(你应该这样做),如果你必须使用char变量数组,你需要在std:

与:

我对从char到const char[-fppermissive]的转换有一个问题

我如何解决它?

试试这个:

std::string M;
cin >> M;
替换如下所示的行:

if(strcmp(M,"drawer")==0)
为此:

if (M == "drawer" )

为什么要将
char
s(
charm[]=…;
)的数组更改为单个
char
charm;
)?除了另一个答案建议使用
std::string
(你应该这样做),如果你必须使用
char
变量数组,你需要在
std::unique\ptr M(new char[100])
中使用之前使用
std::cin
(我假设100个
char
足够容纳输入;根据需要进行更改).

std::string M=“抽屉”;

你是说我吗?因为我不想定义变量
charm
,但我想在输入中给出它“嗯,请做什么?”?不能将字符串读入单个字符。
cin@πάνταῥεῖ 是正确的,而且,既然这是C++,为什么不使用STD::string代替cString?学习Basic C++,然后复制代码。code>即使是
std::unique_ptr
也比推荐的原始内存分配好。@πάνταῥεῖ: 很公平,我会做出这样的改变。但是我可以用一个开关而不是两个,如果可以的话?因为我知道这个开关应该只对整数起作用
if(strcmp(M,"drawer")==0)
if (M == "drawer" )
std::string M = "drawer";
cout<<M<<endl;
if(M.compare("knife") == 0)
{
    // do whatever
}

You can also do:
if(M == "knife")
{
    // do whatever
}