我目前正在与MFC合作构建某个程序,该程序要求用户在CString
下面输入一系列数字,如下所示(为简单起见,我们称之为aCString)。
我可以使用'strtok'将字符串或字符数组转换为浮点数组 没有问题。
但我正在努力将CString
转换为字符串或字符数组,以便我可以进行前面提到的转换!
- 我试过strcpy
strcpy(my_string, (LPCTSTR)aCString);
但得到了那个错误
char * strcpy(char *,const char *)':无法转换参数2 'LPCTSTR'到'const char *'
我很感激帮助!
答案 0 :(得分:4)
CString类模板提供Tokenize成员,可用于将输入字符串拆分为单个标记。然后可以使用std::stof函数将标记转换为浮点值:
std::vector<float> ToFloats( const CString& numbers ) {
std::vector<float> buffer;
int start{ 0 };
CString token = numbers.Tokenize( _T( "," ), start );
while ( start != -1 ) {
buffer.push_back( std::stof( { token.GetString(),
static_cast<size_t>( token.GetLength() ) } ) );
token = numbers.Tokenize( _T( "," ), start );
}
return buffer;
}