ниже мой код, который пытается разделить строку «ключ = значение» на два подмассива «ключ» и «значение», и вот ошибки:
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?
std::string
, а неstd:string
. И я бы посоветовал вообще не использоватьusing namespace std;
. - person lapk   schedule 10.11.2013__PARSE_H_
), и имена, начинающиеся с символа подчеркивания, за которым следует заглавная буква, зарезервированы для реализации. Не используйте их. - person Pete Becker   schedule 10.11.2013