编写一个函数指针用来删除字符串空格
时间: 2024-10-20 14:13:03 浏览: 53
编写一个函数指针来删除字符串中的空格通常是在C++等支持函数指针的语言中,这个函数指针会指向一个接受字符串并返回去掉了空格的新字符串的函数。下面是一个简单的例子:
```cpp
#include <string>
// 函数原型,声明了一个接收字符串并返回去掉空格字符串的函数
typedef std::string (*DeleteSpacesFn)(const std::string& str);
// 实现的一个函数,用于删除字符串中的所有空格
std::string removeSpaces(const std::string& input) {
std::string result;
for (char c : input) {
if (c != ' ') {
result += c;
}
}
return result;
}
// 使用函数指针
void applyFunctionPointer(DeleteSpacesFn ptr, std::string& str) {
str = ptr(str); // 调用函数指针操作原始字符串
}
int main() {
std::string testStr = "Hello World! ";
// 创建一个指向removeSpaces函数的函数指针
DeleteSpacesFn deleteSpaces = &removeSpaces;
// 应用函数指针删除空格
applyFunctionPointer(deleteSpaces, testStr);
std::cout << "String with spaces removed: " << testStr << "\n"; // 输出 "HelloWorld!"
return 0;
}
```
在这个示例中,`applyFunctionPointer`函数接受一个`DeleteSpacesFn`类型的函数指针,并通过它来修改输入字符串。
阅读全文