C 字符串初始值设定项不包含终止符?

2024-03-29

我对以下 C 代码片段有点困惑:

printf("Peter string is %d bytes\n", sizeof("Peter")); // Peter string is 6 bytes

这告诉我,当 C 编译双引号中的字符串时,它会自动为空终止符添加一个额外的字节。

printf("Hello '%s'\n", "Peter");

The printf函数知道何时停止读取字符串“Peter”,因为它到达了空终止符,所以......

char myString[2][9] = {"123456789", "123456789" };
printf("myString: %s\n", myString[0]);

Here, printf打印所有 18 个字符,因为没有空终止符(如果不去掉 9,它们就无法容纳)。C 不在变量定义中添加 null 终止符吗?


你的字符串是[2][9]。这些 [9] 是 ['1'、'2' 等...'8'、'9']。因为您在第一个数组维度中只给了它 9 个字符的空间,并且因为您使用了全部 9 个字符,所以它没有空间放置 '\0' 字符。重新定义你的 char 数组:

char string[2][10] = {"123456789", "123456789"};

它应该有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 字符串初始值设定项不包含终止符? 的相关文章

  • C++ 中的映射的多个键

    我有一个表 其中的条目是这样的 Row Column1 Column2 Column3 Column4 1 0X0A 1 2 A 2 0X0B 2 2 B 3 0x0C 3 2 C 现在我想使用映射 以便我可以使用第 1 列或第 2 列作为
  • 以编程方式最大化屏幕一半的窗口

    我想最大化屏幕左侧的随机窗口 我可以在我的代码中使用 Windows Aero 函数吗 这个窗口can像用鼠标一样最大化 我只想以编程方式做到这一点 I use C 我可以得到IntPtr窗户的 如果可能的话 不要伪造鼠标或键盘输入 这可以
  • 如何在命名管道 (mkfifo) 上执行非阻塞 fopen?

    如果我有一个程序使用 mkfifo 创建并尝试打开命名管道 如何在不阻塞的情况下打开管道进行读取或写入 具体来说 我正在编写一个 C 程序 它可以在有或没有 GUI 的情况下运行 用 Java 编写 在 C 程序中 我使用 mkfifo 成
  • 如何在 CUDA 中执行多个矩阵乘法?

    我有一个方阵数组int M 10 以便M i 定位第一个元素i th 矩阵 我想将所有矩阵相乘M i 通过另一个矩阵N 这样我就收到了方阵数组int P 10 作为输出 我看到有不同的可能性 分配不同元素的计算M i 到不同的线程 例如 我
  • XML 字符串到 XML 文档

    我有一个完整的 XML 文档String我需要将其转换为 XML 文档并解析文档中的标签 此代码示例取自csharp examples net http www csharp examples net xml nodes by name 写
  • 调用程序中对库类成员的未定义引用错误

    下面添加了其他问题 2011 年 4 月 11 日 我正在用 C 开发一组跨平台的共享库 DLL Sos 和测试程序 尽管我必须能够支持 C 这些库将仅作为目标代码发布 但测试程序将随源代码一起发布 因此我们的客户可以获得示例代码 因此 我
  • 如何在 C# winforms 中翻译文本

    我需要翻译一些文本 我正在尝试使用谷歌翻译器来翻译它 我检查了这个article http martinnormark com translate text in c using google translate 但我在以下代码中遇到异常
  • 在iOS中,在纯C中,这是获取本地文件路径的方法吗?

    我需要最终得到一个 cstring 作为捆绑包中文件的本地路径 First include
  • 设置 C# 可选参数的默认值

    每当我尝试将可选参数的默认值设置为资源文件中的某些内容时 我都会收到以下编译时错误 message 的默认参数值必须是编译时常量 有什么方法可以改变资源文件的工作方式来实现这一点吗 public void ValidationError s
  • 用于更改可为空和非空数据类型的数据注释是什么?

    我认为这对于有经验的程序员来说应该很简单 但事实就是如此 我正在开发一个首先使用实体 框架代码的项目 我还启用了迁移并设置为自动 可爱的功能 我愚蠢地在我的实体类中声明了一种错误的数据类型 现在我意识到它不适用于我想要做的事情 一定是自动完
  • 如何在 Visual C++ 中创建 ActiveX DLL

    是否有在 Visual Studio 2008 C 中创建 ActiveX DLL 的教程 参考 我有一个使用 DLLRegisterServer UnregisterServer 构建的 DLL 并且已注册 但我在弄清楚使用什么名称来引用
  • 使用 Opengl 绘制立方体 3D

    我想使用 OpenGL 绘制 3D 立方体这是我的代码如何纠正错误 float ver 8 3 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
  • std::function 和 std::bind 行为

    我有这个代码 include
  • EF Core:同时使用ID作为主键和外键

    我有两个实体 Prospect and Person 我想做的是使用Prospect ID作为主键Prospect表并作为外键PersonID 我的想法是对两个实体使用相同的 ID 而不需要PersonID on my Prospect实体
  • 提升精神带走关键字并忽略船长

    这是使用表达式的语法的一小部分 prefix lit L not gt gt prefix lit gt gt prefix postfix 我在 postfix 内部有某种方式纯名称获取标识符 name pure lexeme boost
  • 有条件地使用按位运算符

    条件运算符如何使用按位运算符表示 这是一个家庭作业问题 我必须仅使用按位运算来实现条件运算符 那就很简单了 如果if允许使用语句 但它必须是严格的按位运算符 仅运营商 gt gt and lt lt 可以使用 不if可以使用语句或循环 该函
  • WCF maxBytesPerRead 限制为 4096

    我在流模式下使用基本的 WCF Web 服务从服务器下载文件 我已将服务器端的绑定指定为
  • 无法使用 openxml 在 PPT 报告中生成第二个表

    我有这个代码 我能够完美地生成带有文本数据的 pptx 报告 我在这份报告中还有 4 个表格 其中包含动态数据 我可以在 PPT 中生成一张表格 但无法生成多个表格 Requirement On the right I have 4 tab
  • 使用 winforms 、 mdi 、父子窗体,在父窗体下指定空间打开子窗体

    我有一个 winform MAINFORM 需要以此形式打开子窗体 如图所示 黑色部分是一个面板并且包含一个编号 具有多个节点的 LinkLabels 和 Treeview 在其余部分中 我想在单击面板上的链接标签时显示子表单 子表单应完全
  • 来自 StreamReader 的原始文件字节,幻数检测

    我试图区分 文本文件 和 二进制 文件 因为我实际上想忽略具有 不可读 内容的文件 我有一个文件 我认为它是 GZIP 存档 我试图通过检测幻数 文件签名来忽略此类文件 如果我在 Notepad 中使用十六进制编辑器插件打开文件 我可以看到

随机推荐

  • 在 .NET Core 3.0 中加载 exe 时出现错误的 IL 格式

    我有两个 NET Core 3 0 WPF 项目 其中之一 我发布到一个名为 DefaultPlugin exe 的可执行文件中 在我的第二个 WPF 项目中 我尝试使用 Assembly Load 加载第一个项目并读取类型 但是 当我这样
  • 根据android中图表引擎饼图中的屏幕大小标记文本大小

    我成功使用图表引擎显示饼图 我想根据屏幕尺寸自定义标签文本大小 提前致谢 这个问题归结为解决问题 achartengine 的设计似乎考虑到了原始像素 而显示质量和像素密度在过去几年中显着提高 achartengine 示例中的标签在我的
  • LESS mixin 变量类名

    我正在使用 Font Awesome 4 0 0 并且想要在 LESS 中执行类似的操作 btn github btn btn primary margin left 3em i fa css prefix fa css prefix gi
  • 在C++中,如何读取一个文本文件的内容,并将其放入另一个文本文件中?

    我想阅读a的内容input txt文件并将其放入output txt文件 我尝试在下面的代码中执行此操作 但没有成功 我是新手C 文件操作 你能告诉我该怎么做吗 include
  • wiki 如何处理多个同时编辑?

    这件事一直萦绕在我的脑海里 所以我想我还是去问问吧 wiki 如何处理对同一内容的多次编辑 这是我所要求的一个简单的例子 假设一个页面包含以下内容 我是一页 现在假设有两个人去编辑该页面 每人加一句话 第一个人 我是一页 我是同一页的第二句
  • 在RSelenium中指定下载文件夹

    我在用RSelenium导航至包含下载文件按钮的网页 我使用 RSelenium 单击此按钮来下载文件 但是 文件默认下载到我的文件夹 下载 中 而我希望将文件下载到我的工作目录中 我尝试指定一个 chrome 配置文件 如下所示 但这似乎
  • 如果我在 Fragments 中使用 ViewBinding,onDestoryView() 之后会出现 NPE 吗?

    我正在尝试在片段中使用 ViewBinding 首先 谷歌是这样说的 注意 碎片比他们的观点更长久 确保清除片段的 onDestroyView 方法中对绑定类实例的所有引用 在片段中使用视图绑定 https developer androi
  • 如何在 gnuplot 中设置网格间距

    我的 yaxis 从 0 到 100 我想要每 10 个单位后有一条网格线 我怎样才能做到这一点 即如何在每10个单位之后绘制网格线 看看 帮助网格 你可能想做类似的事情 set yrange 0 100 set xrange 0 10 s
  • 为什么 DWORD 值通常以十六进制表示?

    我试图理解为什么 DWORD 值经常在 MSDN 上以十六进制描述 我分析这个的原因是因为我试图从根本上理解为什么所有这些不同的数字数据类型存在 一位当地导师向我暗示 DWORD 和其他 Microsoft 类型的创建与处理器的发展有关 这
  • 如何接受像“2.0”这样的整数,但例如“2.1”作为浮点数? Python

    我试图让用户在输入字母或非整数时收到错误消息 并且当输入整数时 程序将继续显示该整数的平方和立方 我的老师不希望代码出现任何 中断 或任何 ValueErrors print Squaring and cubing integer prog
  • 将 xgboost.Booster 类转换为 XGBRegressor 或从 xgboost.Booster 加载 XGBRegressor

    我从 Sagemaker 获得了一个模型 其类型为
  • 使用标签和优先级记录到 Crashlytics,而无需发送到 logcat

    根据以下说明 有两种方式登录 Crashlytics文档 https docs fabric io android crashlytics enhanced reports html custom logging Crashlytics l
  • 如何捕获通过读/写文件引发的所有异常?

    在Java中 有没有办法获取 捕获 所有exceptions而不是单独捕获异常 如果需要 您可以向方法中添加 throws 子句 那么你不必立即捕获检查的方法 这样 您就可以抓住exceptions稍后 也许与其他时间同时 exceptio
  • 将 SWIG 与构建系统结合使用[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有人有使用 SWIG 界面生成器 的
  • Codeigniter 数据库插入失败

    目前在我的控制器中 当添加新数据时 我会验证输入 如果存在任何问题 它会让用户知道 否则它将数据传递到模型以插入到数据库中 现在我如何检查插入语句在模型中是否正常工作 并让用户知道是否没有 像下面这样的插入语句是否返回 true 或 fal
  • HTML5 视频自动播放且声音未静音

    我需要在我的网站上实现本地自动播放视频 不过 我知道 当视频没有 静音 属性时 较新的浏览器 即 Chrome Mozilla 和 Safari 会阻止自动播放 所以 有没有办法通过 HTML 或 Javascript 中的任何技巧在 HT
  • 成员函数定义

    正确的做法是什么 定义成员 类 函数inside班上 定义成员 类 函数outside班上 Thanks 假设您正在谈论这三种可能性 头文件中的类定义中定义的方法 方法在头文件中定义在类定义之外 方法定义在实现文件中的类定义之外 那么项目和
  • node_modules/@types/react-dom/... 处出现错误。后续变量声明必须具有相同的类型。变量“a”

    我已经安装了 types react dom 以及 typescript types react 和 types meteor 但是当我尝试从命令行运行类型检查器时 出现以下错误 您可以在此处重现错误并查看我的所有配置 https gith
  • 强制嵌入推文为 100% 宽度

    我试图通过将宽度设置为 100 来强制嵌入的推文做出响应式行为 我尝试按如下方式调整内联宽度 blockquote class twitter tweet width 100 blockquote 我还尝试对 twitter tweet 类
  • C 字符串初始值设定项不包含终止符?

    我对以下 C 代码片段有点困惑 printf Peter string is d bytes n sizeof Peter Peter string is 6 bytes 这告诉我 当 C 编译双引号中的字符串时 它会自动为空终止符添加一个