首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多字节字符串和普通字符串

多字节字符串和普通字符串
EN

Stack Overflow用户
提问于 2015-01-26 12:46:25
回答 2查看 3.9K关注 0票数 1

我不明白对于C,是否每个字符串总是一个多字节字符串,这意味着它们被编码为多字节字符:

代码语言:javascript
运行
复制
char s[] = "AAA"; 

char m[] = "X生";

如果s不包含像m这样的扩展字符集的成员,那么它也是一个多字节字符串吗?

我对此表示怀疑,因为我阅读了libc手册中的以下内容:

string“通常指多字节字符串,而不是宽字符串。宽字符串是wchar_t类型的数组,对于多字节字符串,通常使用wchar_t *类型的指针。

因此,我不明白多字节是否被引用到宽字符串的编码方面的字符串(它们的编号)的字节。

EN

Stack Overflow用户

发布于 2015-01-26 12:58:28

您可以很容易地尝试测试一个字符串有多少字节。如果我用以下代码在我的机器上编译它:

代码语言:javascript
运行
复制
char s[] = "AAA";
char m[] = "X生";
printf("s: %d\n", sizeof(s));
printf("m: %d\n", sizeof(m));

因此我会得到输出

代码语言:javascript
运行
复制
s: 4
m: 5

这意味着"s“不是多字节字符串,而是"m”。为了确保编译器/系统的行为方式相同,我只需要在您的系统上测试它。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28150386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档