C++ 使用C++;字符串数组中有多少个字符?

C++ 使用C++;字符串数组中有多少个字符?,c++,arrays,string,loops,count,C++,Arrays,String,Loops,Count,我有下面的代码,我很困惑。我试图计算出有多少内存(部分填充的数组实际占用了多少字节的内存/空间)。我有下面的代码,但我有点困惑 如果我声明一个包含8个元素的字符串数组,并用这两个字符串部分填充元素。for循环将从0开始,直到数组的大小(假设每个字符串需要4个字节)除以数组中第一个元素的大小(32个可能的字节)为止。即返回4—数组中第一个字符串的元素的大小。但这仍然不能告诉我该字符串中有多少个字母/字符 我知道在循环中,当数组中的值不等于空白/空值时,我们会增加计数。为我们提供数组中已填充(非空)

我有下面的代码,我很困惑。我试图计算出有多少内存(部分填充的数组实际占用了多少字节的内存/空间)。我有下面的代码,但我有点困惑

如果我声明一个包含8个元素的字符串数组,并用这两个字符串部分填充元素。for循环将从0开始,直到数组的大小(假设每个字符串需要4个字节)除以数组中第一个元素的大小(32个可能的字节)为止。即返回4—数组中第一个字符串的元素的大小。但这仍然不能告诉我该字符串中有多少个字母/字符

我知道在循环中,当数组中的值不等于空白/空值时,我们会增加计数。为我们提供数组中已填充(非空)的总位置。但是,我仍然没有一个实际字符数的值

这如何告诉我们字符串中有多少个字符

#include <iostream>
#include <string>
using namespace std;

int main() 
{
string test_array[8] = {"henry", "henry2"};
size_t count = 0;

for (size_t i = 0; i < sizeof(test_array)/sizeof(*test_array); i++) 
{

    cout << "NOT THE POINTER: "<<sizeof(test_array) << endl;
    cout << "POINTER: "<<sizeof(*test_array) << endl;

    if(test_array[i] != "")
        count ++;
}

int num_elem = sizeof(test_array)/sizeof(test_array[0]);
cout << num_elem << endl;
cout << count << endl;

return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
字符串测试_数组[8]={“henry”,“henry2”};
大小\u t计数=0;
对于(size_t i=0;i无法要知道一个
std::string
中有多少个字符,请使用
size()
方法。

length()
方法。但是length()适用于特定项。我知道我可以说test_array[o].length();但如果我不知道数组中有多少项(因为它部分已填充),该怎么办我想知道我总共有多少个字符(在本例的前两个字段中)。@yelizavetayer这个答案建议您将
count++;
更改为
count+=test_数组[i]。size();
count+=test_数组[i]。length();
只是另一个选项。