我怎么能得到这个的大小:
char* stringit[4] = {"H","H","UH","i"};
Run Code Online (Sandbox Code Playgroud)
我试过了:
sizeof(stringit);
Run Code Online (Sandbox Code Playgroud)
它输出了32.
我试着做一个for循环:
for (i= 0; check != 0; ++i){
check = stringit[i];
}
Run Code Online (Sandbox Code Playgroud)
那也不起作用.无论如何要做到这一点,而不必传递数组的大小?
小智 7
使它成为一个以NULL结尾的指针数组
char* stringit[] = {"H","H","UH","i" , NULL };
Run Code Online (Sandbox Code Playgroud)
然后只计算指针,直到找到空指针.
获取数组元素数量的正确方法是将其实际大小(以字节为单位)除以元素的大小:
sizeof(stringit) / sizeof(stringit[0])
Run Code Online (Sandbox Code Playgroud)
但除非你有非常具体的要求,否则你应该使用一个标准的容器vector(而string不是char*C字符串):
std::vector<std::string> stringit = {"H","H","UH","i"};
std::cout << stringit.size();
Run Code Online (Sandbox Code Playgroud)
正如@KonradRudolph所提到的,vector如果您的元素数量是可变的,那就太好了.如果元素的数量在编译时是已知的并且永远不会改变,则可以使用array:
std::array<std::string, 4> stringit = {"H","H","UH","i"};
std::cout << stringit.size();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3796 次 |
| 最近记录: |