cout << toupper(c);为什么打印时是一串数字?



 string s19 = "hello, world!";
    for(auto c: s19)
    {
        //输出大写形式
        if(!ispunct(c) || !isspace(c))
        {
            cout << toupper(c);
        }
    }
这样写打印时是一串数字。而如果像下面这样:


 c = toupper(c);
cout << c;


 打印时则正确,请问大家这是怎么回事?

C++

神腿蓋世蔣中正 9 years, 10 months ago

原因很简单。

请注意 toupper 的返回值: http://www.cplusplus.com/reference/cctype/toupper/

Spprite answered 10 years, 1 month ago

原因很简单。

请注意 toupper 的返回值: http://www.cplusplus.com/reference/cctype/toupper/

爱吃菠菜的猫 answered 9 years, 10 months ago

Your Answer