c++ - Sql Like在c++中的类似用法

标签 c++

我想问一个简单的问题,有没有办法在c++中使用“like”这样的东西

LIKE '%s 我想要在 C++ 中这样的东西,因为如果我想让用户在程序中找到一些东西,这只会匹配所有相关数据。

最佳答案

Regular expressions可以用来实现你想要的。但是有两个问题:

1.) 与简单的 SQL LIKE 关键字相比,它们的使用确实复杂

2.) 它们只是 C++11 中的标准功能。如果您使用“旧”C++ 编写,则必须使用 Boost.Regex图书馆。

然而...

查看w3schools.com 上的非常基本的LIKE 示例 ,您实际上可以使用普通的 std::string 函数在简单的 C++ 中实现其中的许多功能。

例如,让我们看看这个:

SELECT * FROM Customers WHERE City LIKE '%s'; 

这只是意味着对于每个字符串,您查看最后一个字符并检查它是否为“s”:

std::string s;
// ...
if (!s.empty() && (s[s.size() - 1] == 's') {
    // ...
}

或者这个:

SELECT * FROM Customers WHERE Country NOT LIKE '%land%'; 

在 C++ 中:

std::string s;
// ...
if (s.find("land") == std::string::npos) {
    // ...
}

所以,最后,这实际上取决于您想要使用 LIKE 做什么。

关于c++ - Sql Like在c++中的类似用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22099599/

相关文章:

C++ POCO - 如何在不使用 run() 方法的情况下在线程池上启动线程?

c++ - Qt delete 适用于 Valgrind 但不能正常执行

c++ - 声明变量时extern undefined reference错误

c++ - 没有匹配的函数调用错误

c++ - 以最小的开销编译时生成函数调度程序

c++ - 使用另一个宏生成宏的名称(C 预处理器)

c++ - 如何给 C++ 程序一个图标?

c++ - 函数、数组和动态数组

c++ - 链接/注册 .so 文件

c++ - 为什么 CUPS 不归还我的默认打印机?