tju_dd 2021-09-29 09:39 采纳率: 60%
浏览 33
已结题

C++字符串长度的一个问题应该不难,但自己没有查到答案,想请教一下


# include <iostream>
# include <cstring>

using namespace std;

int main()
{
    char s[] ="ab\10\t\\cghi";
    cout << sizeof(s) <<endl;
    cout << strlen(s) <<endl;
    return 0;
}

我觉得输出应该是11和10,但实际是10和9

  • 写回答

4条回答 默认 最新

  • qfl_sdu 2021-09-29 09:43
    关注
    ab\10\t\\cghi
    a是一个字符   1
    b是一个字符   2
    \10是一个字符 3
    \t是一个字符  4
    \\是一个字符  5
    c是一个字符   6
    g是一个字符   7
    h是一个字符   8
    i是一个字符   9
    sizeof计算的时候要多算一个\0,所以sizeof(s) 就是10
    strlen(s)不包括\0,所以是9
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月7日
  • 已采纳回答 9月29日
  • 创建了问题 9月29日

悬赏问题

  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?
  • ¥15 nasm x86 变量归零
  • ¥65 Tree 树形控件实现单选功能,可以使用element也可以手写一个,实现全选为全选状态
  • ¥60 寻抓云闪付tn组成网页付款链接
  • ¥16 寻字节跳动内部人员帮推简历
  • ¥20 如何通过sentry收集上传Android ndk的崩溃?
  • ¥30 有关数值生成的稳健性探讨
  • ¥20 关于C/C++图形界面设计问题
  • ¥15 QT+Gstreamer框架开发视频采集,无法将waylandsink视频绑定qt窗口
  • ¥15 vs2010开发 WFP(windows filtering platform)异常