我是 C++ 的新手。 我宣布一个字符串数组,里面有空值,我想得到数组的数组大小。
但是,我只能得到空值的大小。 我怎样才能得到没有空值的大小?
#include <iostream>
using namespace std;
int main(){
string arr[100] = {"a","b","c"};
int len = end(arr) - begin(arr);
cout << len;
//I do not want the count the null element.
//I want to cout len = 3
}
谢谢你的回答
可以循环遍历数组,统计非空元素的个数,得到没有空元素的数组大小。这是一个例子:
#include <iostream>
using namespace std;
int main(){
string arr[100] = {"a","b","c"};
int len = 0;
for(int i = 0; i < 100; i++){
if(arr[i] != ""){
len++;
} else {
break;
}
}
cout << len;
//output: 3
return 0;
}
在此示例中,循环遍历数组并在元素不为空时递增 len 变量。如果循环到达数组末尾或遇到空元素,则循环退出。然后将最终的 len 值输出到控制台。
您想计算数组中元素的数量
arr
在包含空字符串的元素之前,该元素位于所谓的标记值之前。
在这种情况下,您需要使用循环顺序检查数组的每个元素。这样的循环隐藏在标准算法中
std::find
.
例如你可以写
#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
int main()
{
std::string arr[100] = { "a","b","c" };
auto last = std::find( std::begin( arr ), std::end( arr ), "" );
auto count = std::distance( std::begin( arr ), last );
std::cout << count << '\n';
}
程序输出为
3
一般情况下请注意,如果您的程序处理
std::string
类型的对象,那么您需要明确包含标题<string>
.