如何在 C++ 中将字符串转换为字符

Nhe*_*non 1 c++ casting const-char

我想将字符串向量(向量)内的字符串转换为字符。该向量如下所示: lons = ["41", "23", "N", "2", "11" ,"E"]。我想提取“N”和“E”以将它们转换为字符。我做了以下事情:

char lon_dir;
lon_dir = (char)lons[lons.size()-1].c_str();
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误消息:

cast from 'const char*' to 'char' loses precision [-fpermissive]
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Ple*_*eus 5

您不能直接将 ac 字符串(char* 或 const char*)转换为 char,因为它是指针。更准确地说,是指向字符数组的指针!

因此,一旦您从数组 lons 中检索到正确的 char* (或 const char*),就足以取消引用所述指针,这将返回该字符串的第一个字符

char* str = "abc";
char a = *str;
char b = *(str + 1);
Run Code Online (Sandbox Code Playgroud)

ETC...