2015-11-02 149 views
0

我知道這是一個愚蠢的問題,但它不能解決,而且我使用了googling,但這也沒有幫助。我想從我的字符串選擇子字符串,然後將其轉換爲ASCII值,但它表明了我一個錯誤:將char轉換爲ascii值

int a=char(S.substr(i-1,1)); 
     int b=S.substr(i ,1); 
     if ((a== 13) && (b== 10)) 
     break; 

這是我的錯誤:

pdusms.cpp:1020: error: invalid cast from type 'std::basic_string' to type 'char' int a=char(S.substr(i-1,1));
pdusms.cpp:1021: error: invalid conversion from 'const char*' to 'int' [-fpermissive] int b=S.substr(i ,1).c_str(); ^
How can i do that? how can i change the char to int (show ASCII value)

+0

Try int b = S.substr(i,1).c_str(); –

+0

我這樣做。但有錯誤 –

+0

@OzairKafray'c_str'返回一個指針。這不能轉換爲'char'。 – emlai

回答

2

substr結果是字符串,而不是一個字符。
單字符字符串不是字符。

使用索引獲取字符。

你想

int a = S[i-1]; 
int b = S[i]; 

,但如果你正在尋找行分隔符,你不應該比較ASCII值 - 使用

if (S[i-1] == '\r' && S[i] == '\n') 

這是便攜式的。