将char转换为ascii值
问题描述:
我知道这是一个愚蠢的问题,但它不能解决,而且我使用了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)
答
的substr
结果是字符串,而不是一个字符。
单字符字符串不是字符。
使用索引获取字符。
你想
int a = S[i-1];
int b = S[i];
,但如果你正在寻找行分隔符,你不应该比较ASCII值 - 使用
if (S[i-1] == '\r' && S[i] == '\n')
这是便携式的。
Try int b = S.substr(i,1).c_str(); –
我这样做。但有错误 –
@OzairKafray'c_str'返回一个指针。这不能转换为'char'。 – emlai