字符串末尾的空字符'\ 0'

ptipti7

我有以下代码。

#include <stdio.h>
#include <string.h>

#define MAXLINE 1000

int main()
{
    int i;
    char s[MAXLINE];

    for (i = 0; i < 20; ++i) {
        s[i] = i + 'A';
        printf("%c", s[i]);
    }

    printf("\nstrlen = %d\n", strlen(s)); // strlen(s): 20
    return 0;
}

我应该写

s[i] = '\0';

在执行循环以标记字符串的末尾后显式还是自动完成?如果没有s[i] = '\0';函数strlen,则返回正确值20。

约翰·库格曼

是的,您需要自己添加一个空终止符。一个不会自动添加。

您可以通过显式初始化s为在字节20处不包含NUL的内容来验证这一点

char s[MAXLINE] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";

如果这样做,strlen(s)将不会返回20。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

'\ 0'末尾的C字符串

为什么 s[0] 是 C++ 中空字符串 s 的空字符串?

将数组中的空字符串替换为0

始终将NULL排序为空字符串或0

Python-将空字符串设置为0

空字符串的长度怎么可能大于0?

从字符串末尾查找数字> 0的首次出现(位置)

C分割字符串函数在字符串末尾返回\ 377而不是\ 0。为什么?

在R中将字符(0)保留为空字符串的同时取消列出列

甚至避免使用Option字段。字符串始终为空字符串,整数可选字段为0

使用Java中的Scanner接受空字符串或长度为0的字符串作为输入

字符 '\0' 与字符串“\0”

在字符串末尾仅两个字符处添加0

如果value为0,则在Angularjs中返回空字符串

为什么这个假值会转换为空字符串而不是 0?

如何将NaN从parseInt转换为0以获取空字符串?

JAXB:如何使JAXB不要将空字符串解组为0

如何区分未设置参数和$ false,0,空字符串?

角度表达式中的数字等于0时如何显示空字符串

为什么空字符串可以在C ++中输出index 0元素

如何在JavaScript中区分0和空字符串?

SQL Server ISNULL函数将空字符串评估为零(0)

Safari将URL中的“(空字符串)”转换为0

Python-Tkinter - Ttk ComboBox - 获取返回空字符串的函数(长度 = 0)

空字符串和'\ 0'char有什么区别?(从指针和数组的角度来看)

Pyspark - 如果数据类型为 BIGINT/DOUBLE/Integer,则用“0”填充空字符串

为什么$'\ 0'或$'\ x0'是一个空字符串?应该是空字符,不是吗?

软件包版本字符串末尾的“ -0ubuntu1”有什么意义?

NASM x86_64 删除换行符并在字符串末尾添加 0