c++ - 如何在 C++ 中查找字符串数组中的元素数?

标签 c++

我有一个字符串数组。

std::string str[10] = {"one","two"}

如何找到 str[] 数组中有多少个字符串?有没有标准函数?

最佳答案

尽管你只初始化了其中的两个,但那里有 10 个字符串:

#include <iostream>
int main (void) {
    std::string str[10] = {"one","two"};
    std::cout << sizeof(str)/sizeof(*str) << std::endl;
    std::cout << str[0] << std::endl;
    std::cout << str[1] << std::endl;
    std::cout << str[2] << std::endl;
    std::cout << "===" << std::endl;
    return 0;
}

输出是:

10
one
two

===

如果要统计非空字符串:

#include <iostream>
int main (void) {
    std::string str[10] = {"one","two"};
    size_t count = 0;
    for (size_t i = 0; i < sizeof(str)/sizeof(*str); i++)
        if (str[i] != "")
            count++;
    std::cout << count << std::endl;
    return 0;
}

这会按预期输出 2

关于c++ - 如何在 C++ 中查找字符串数组中的元素数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739384/

相关文章:

java - winio64.dll 中有哪些方法以及如何使用它们

c++ - Qt 应用程序中似乎无法识别插槽

c++ - Rcpp:我无法将参数传递给 C++ 函数

c++ - 在分类袋中添加C++

c++ - 如何检查一个 C++ 类是否扩展了另一个类(比如另一个类是否是一个接口(interface))?

c++ - Boost C++ UDP 示例无法通过互联网传输

c++ - 为什么 C++ 自定义分配器需要比较运算符?

c++ - 在 Windows 上交叉编译 XZ-5.X.X

c++ - 在 C++17 中没有从 std::string 到 std::string_view 的隐式转换(在 std::experimental::basic_string_view 中)

c++ - CMake 错误 : CMake was unable to find a build program corresponding to "MinGW Makefiles"