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

时间:2015-02-17 14:47:01

标签: c++ arrays string loops count

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

如果我声明一个包含8个元素的字符串数组,并用两个字符串部分填充元素。 for循环将从0开始,直到我的数组大小为32个可能的字节(假设我需要每个字符串4个字节)除以数组中第一个元素的大小。返回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;
}

1 个答案:

答案 0 :(得分:2)

要知道std::string中有多少个字符使用size()方法。