2016-02-26 237 views
-11

出錯了?將std :: string轉換爲char

std::string _text = asLowerCaseString(text); 
for(uint8_t i = 0; i < _text.length(); i++) 
    { 
    char t = _text; 
    if(t != '-' && t != '.' && !(t >= 'a' && t <= 'z')) 
     { 
     _text.erase(i, 1); 
     i--; 
     } 
    } 

std::string words []= {".net","no-ip", ".net", ".com", ".com.br", ".org", ".pl", ".net"}; 
int ii, length; 
length = sizeof(words)/sizeof(words[0]); 
for(ii=0; ii < int(length); ii++) 
    { 
    if (int(_text.find(words[ii])) > 0 || _text == words[ii]) 
     { 
     return false; 
     break; 
     } 
    } 

行錯誤

char t = _text; 

錯誤

There is no conversion function "std :: string" a "char" suitable

我使用MSVC 2012

,此代碼linux下的編譯器,但沒有窗戶的罰款。

+2

更換無無無無無。不要這樣寫代碼。 :( – erip

+1

錯誤發生在哪一行?我們不介意讀者,你知道! –

+0

這行 - > char t = _text; – dohdle

回答

2

有沒有從字符串轉換成char

char t = _text; 

char t = _text[i]; 
+0

已經嘗試過了。錯誤:!=:'char []'它與'int'的間接級別不同 – dohdle

+5

發佈代碼時不可能。 –

+2

@dohdle然後,問題是** not ** in the代碼你發佈。我已經複製了你的代碼片段(不包括'asLowerCaseString'的用法,因爲你沒有提供它的實現),它編譯得很好。 –

相關問題