假如有字符串"D:/学习/新建文件夹/333.txt.zip",怎么用C++获取字符串0到最后一个"."的数据
时间: 2024-09-28 11:10:46 浏览: 35
在C++中,你可以使用标准库中的`std::string`和`substr()`函数来提取字符串中从第一个字符到最后一个`.`之前的部分。假设`D:/学习/新建文件夹/333.txt.zip`是一个`std::string`类型的变量,可以这样做:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "D:/学习/新建文件夹/333.txt.zip";
size_t dot_index = str.find_last_of("/."); // 查找最后一个 "/"
if (dot_index != std::string::npos) { // 如果找到,则取到`.`前的所有字符
std::string sub_str = str.substr(0, dot_index);
std::cout << "提取到的数据: " << sub_str << std::endl;
} else {
std::cout << "字符串中没有`.`" << std::endl; // 如果没找到`.`,则输出提示信息
}
return 0;
}
```
这段代码会输出`D:/学习/新建文件夹/333.txt`。如果`find_last_of()`找不到`.`,说明文件名中不存在`.`,程序将打印相应的提示。
相关问题
假如有字符串"D:/学习/新建文件夹/333.txt.zip",怎么用C++获取字符串"D:/学习/新建文件夹/333.txt."
在C++中,你可以使用标准库中的`std::string`以及一些字符串处理函数来截取字符串到特定位置。假设你想在找到`.zip`之前的所有字符,可以这样做:
```cpp
#include <iostream>
#include <string>
std::string remove_zip_extension(const std::string& input_str) {
size_t zip_index = input_str.find_last_of("/\\.") + 1; // 找到".zip"的位置,并加一
return input_str.substr(0, zip_index); // 返回从开始到".zip"前的所有字符
}
int main() {
std::string str = "D:/学习/新建文件夹/333.txt.zip";
std::string result = remove_zip_extension(str);
std::cout << "原始字符串去掉.zip后的部分: " << result << std::endl;
return 0;
}
```
这个程序会输出:"D:/学习/新建文件夹/333.txt"。
阅读全文