这段代码为什么错了呀



```c++


#include
int main()
{
    char strA[6] { "HELLO" };
    int count = 0;
    while ('0' != strA[count])
    {
        count++;
    }
    std::cout << count;
    system("pause");
    return 0;
    
}

我这段代码为什么错了呀,想不用函数计算出strA的字符串长度


正确的写法是’\0’ !=stra[count],’0’表示字符0,它的ASCII码是32,而不是0,字符串的结束字符是’\0’,表示为空字符,它的ASCII码是0

  • 这篇博客: 史上STL最最最最最最全工具书,看我就够了中的 栈-创建与初始化 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 创建一个不包含任何元素的 stack 适配器,并采用默认的 deque 基础容器
    std::stack<int> values;
    
    • stack<T,Container=deque> 模板类提供了 2 个参数,通过指定第二个模板类型参数,我们可以使用出 deque 容器外的其它序列式容器,只要该容器支持 empty()、size()、back()、push_back()、pop_back() 这 5 个成员函数即可。
    std::stack<std::string, std::list<int>> values;
    
    • 可以用一个基础容器来初始化 stack 适配器,只要该容器的类型和 stack 底层使用的基础容器类型相同即可。
    std::list<int> values {1, 2, 3};
    std::stack<int,std::list<int>> my_stack (values);
    
    • 可以用一个 stack 适配器来初始化另一个 stack 适配器,只要它们存储的元素类型以及底层采用的基础容器类型相同即可。
    std::list<int> values{ 1, 2, 3 };
    std::stack<int, std::list<int>> my_stack1(values);
    std::stack<int, std::list<int>> my_stack=my_stack1;
    //std::stack<int, std::list<int>> my_stack(my_stack1);