从C++中的格式化字符串派生in的方法有多种,以下是其中几种常见的方法:
#include <iostream>
#include <sstream>
int main() {
std::string formatString = "123 4.56";
int intValue;
float floatValue;
std::stringstream ss(formatString);
ss >> intValue >> floatValue;
std::cout << "Int value: " << intValue << std::endl;
std::cout << "Float value: " << floatValue << std::endl;
return 0;
}
输出结果:
Int value: 123
Float value: 4.56
#include <cstdio>
int main() {
const char* formatString = "123 4.56";
int intValue;
float floatValue;
sscanf(formatString, "%d %f", &intValue, &floatValue);
printf("Int value: %d\n", intValue);
printf("Float value: %f\n", floatValue);
return 0;
}
输出结果:
Int value: 123
Float value: 4.560000
<regex>
和 Boost.Regex。使用正则表达式库需要先定义匹配规则,然后使用正则表达式的匹配函数进行匹配和提取。这里以 <regex>
为例:#include <iostream>
#include <regex>
int main() {
std::string formatString = "123 4.56";
int intValue;
float floatValue;
std::regex pattern("(\\d+) (\\d+\\.\\d+)");
std::smatch matches;
if (std::regex_search(formatString, matches, pattern)) {
intValue = std::stoi(matches[1]);
floatValue = std::stof(matches[2]);
std::cout << "Int value: " << intValue << std::endl;
std::cout << "Float value: " << floatValue << std::endl;
}
return 0;
}
输出结果:
Int value: 123
Float value: 4.56
以上是几种从C++中的格式化字符串派生in的方法,具体选择哪种方法取决于格式化字符串的结构和需求。
领取专属 10元无门槛券
手把手带您无忧上云