下面是我的代码,它试图将字符串“key=value”分成两个子数组“key”和“value”,错误如下:
string2StringPair.cc:9:3: 错误:'std' 没有命名类型;string2StringPair.cc:10:3: 错误:'std' 没有命名类型;string2StringPair.cc:13:12:错误:“string2StringPair”之前的预期初始化程序
#ifndef __PARSE_H_
#define __PARSE_H_
#include "cppstd.hh"
#include <string>
using namespace std;
struct StringPair{
std:string key;
std:string value;
}
StringPair string2StringPair (char* str[]){
std:string x, y;
x = ""; y = "";
for (int i=0;i<str.length();i++){
if str[i]=="="{
for (int j=0;j<i;j++){
x=x+str[j];
}
for (int k=(i+1);k<str.length();k++){
y=y+str[k];
}
break;
}
}
if ((x=="") && (y=="")){
cout<<"ERROR: There is no = in the input string!"<<endl;
}
StringPair tmp;
tmp.key = x;
tmp.value = y;
return tmp;
}
#endif
int main(int argc, char *argv[]){
StringPair pair;
pair.string2StringPair(argv[1]);
cout<<"The pair is "<<pair<<endl;
return 0;
}
如果您能帮我解决错误,我将不胜感激。
当我改为
std::string key;
std::string value;
没有更多的“std”错误。为什么??
为什么在 string2StringPair 之前需要一个初始化程序?我虽然我已经有一个:StringPair?