要检查C++ std::string是否以某个字符串开头,可以使用std::string::find()
函数。此外,要将子字符串转换为int,可以使用std::stoi()
函数。以下是一个示例代码:
#include<iostream>
#include<string>
#include <stdexcept>
int main() {
std::string main_str = "12345";
std::string prefix_str = "12";
if (main_str.find(prefix_str) == 0) {
std::cout << "The main string starts with the prefix string."<< std::endl;
try {
int result = std::stoi(main_str.substr(prefix_str.length()));
std::cout << "The converted integer is: "<< result<< std::endl;
} catch (std::invalid_argument &e) {
std::cout << "Invalid argument: " << e.what()<< std::endl;
} catch (std::out_of_range &e) {
std::cout << "Out of range: " << e.what()<< std::endl;
}
} else {
std::cout << "The main string does not start with the prefix string."<< std::endl;
}
return 0;
}
在这个示例中,我们首先使用std::string::find()
函数检查main_str
是否以prefix_str
开头。如果是,我们使用std::string::substr()
函数提取main_str
中prefix_str
后面的子字符串,并使用std::stoi()
函数将其转换为int。如果转换成功,我们将输出转换后的整数。如果转换失败,我们将捕获并输出异常信息。
领取专属 10元无门槛券
手把手带您无忧上云