注册 登录
编程论坛 C++教室

输入汉字为什么不是4?和我保存的UTF格式有关?

小白到底白不 发布于 2024-11-30 15:25, 102 次点击
程序代码:
#include <iostream>
#include <string>  //这个程序要注意,输入abcde,最后统计就是5
#include <cstring>  //输入“汉字”,最统计是6
int main()
{
    using namespace std;
    char charr[20];
    string str;
    cout << "charr在输入之前的长度是:"
         << strlen(charr) << endl;
    cout << "str在输入之前的长度是:"
         << str.size() << endl;
    cout << "请输入一行字:\n";
    cin.getline(charr, 20);
    cout << "你输入的是:" << charr << endl;
    cout << "再输入一行字:\n";
    getline(cin, str);
    cout << "你输入的是:"  << str << endl;
    cout << "charr在输入之后的长度是:" << strlen(charr) << endl;
    cout << "str在输入之后的长度是:"  << str.size() << endl;
    cin.get();
    return 0;
}
2 回复
#2
forever742024-11-30 21:28
和你的运行环境的默认字符编码有关。
UTF8的运行环境,常见汉字都是3字节编码的。

#3
小白到底白不2024-12-01 09:38
回复 2楼 forever74
收到
1