gpt4 book ai didi

c++ - 检查多个字符串是否为空并打印它们的名称

转载 作者:行者123 更新时间:2023-11-30 03:36:51 25 4
gpt4 key购买 nike

通常当我想检查存储在多个字符串中的更多输入是否不为空时,我会采用这种简单的方法:

std::string fieldA = "";
std::string fieldB = "";
std::string fieldC = "Hello";

现在,我可以检查所有:

if ( fieldA.empty() || fieldB.empty() || fieldC.empty() )
std::cout << "Oh oh.. one or more fields are empty << std::endl;

但是如果知道哪些字段是空的就好了,然后,我可以写:

if ( fieldA.empty() )
std::cout << "fieldA is empty" << std::endl;
if ( fieldB.empty() )
std::cout << "fieldB is empty" << std::endl;
if ( fieldC.empty() )
std::cout << "fieldC is empty" << std::endl;

但是通过这种方式我可以发现 fieldA 是空的但 fieldB 不是空的,在这个例子中我只有三个字段,但有更多的字段?

管理多个字符串的控制和定位空字符串的最佳实践是什么?

最佳答案

PaulMcKenzie 的评论是您应该遵循的评论。但是假设您的示例过度简化了您的代码,并且您不能将所有变量都放在一个数组中,我认为如果您使用一个小宏来为您进行字符串化,您可以原谅:

#define PRINT_IF_EMPTY(var) \
do { \
if (var.empty()) \
std::cout << #var " is empty" << std::endl; \
} while(0)

你现在可以用这个替换你的代码:

PRINT_IF_EMPTY(fieldA);
PRINT_IF_EMPTY(fieldB);
PRINT_IF_EMPTY(fieldC);

关于c++ - 检查多个字符串是否为空并打印它们的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40446755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com