C++给一个字符串,怎样截取字符串从后往前第一个.号之前的内容
时间: 2024-09-18 20:07:22 浏览: 19
在C++中,你可以使用`std::string`的`find_last_of()`函数以及迭代器来截取字符串从后往前第一个`.`号(英文句点)之前的内容。下面是一个示例:
```cpp
#include <iostream>
#include <string>
std::string reverseTrimSubstring(const std::string& str) {
size_t last_dot_index = str.find_last_of('.');
if (last_dot_index != std::string::npos) { // 如果有`.`存在
// 从后往前算起的第一个`.`前的字符位置减一
last_dot_index = str.length() - 1 - last_dot_index;
return str.substr(0, last_dot_index); // 截取到`.`前的部分
} else {
return str; // 如果没有`.`,直接返回原串
}
}
int main() {
std::string input_str = "This is a test string with a dot at the end.";
std::string trimmed_str = reverseTrimSubstring(input_str);
std::cout << "Trimmed string: " << trimmed_str << std::endl;
return 0;
}
```
在这个例子中,`substr(0, last_dot_index)`会返回从字符串开始到找到的`.`字符之前的子串。
阅读全文