我正在嘗試編寫一個C++函數,該函數將包含URL的std::string
拆分爲其組件。我需要將這些組件複製到這個結構:將std :: string的一部分複製到另一個未初始化的字符串
typedef struct urlstruct {
string protocol;
string address;
string port;
string page;
} urlstruct;
這是迄今爲止功能:
int parseAnnounce2(string announce, urlstruct *urlinfo){
int i;
if(announce.find("://") != string::npos){
// "://" found in string, store protocol
for(i = 0; i < announce.find("://"); i++){
}
} else {
// No "://" found in string
}
return 0;
}
我需要在之前的字符複製「://」序列到urlinfo->協議字符串。這樣做的好方法是什麼?
我知道我不能使用下面的代碼行來分配它,因爲協議字符串尚未初始化爲包含該內存。
urlinfo->protocol[i] = announce[i];
通過將值存儲在變量中,可以消除對std :: string :: find()的重複調用。 – 2012-07-21 17:06:11
@代碼大師,你可以,是的。不過,我認爲編譯器會照顧到這一點。 – chris 2012-07-21 17:07:38
@ Code-Guru,那裏,開心? :p – chris 2012-07-21 17:10:36