2015-11-02 151 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') 

这是便携式的。