如何在字符串中存储零

时间:2014-05-19 09:00:29

标签: c string

我有一个字符串char date[16] ; 我想,最后两个标志是零。我试过了:

 date[14] = '0';
 date[15] = '0';

 date[16] = '\0';

但是0与' \ 0'相同。我怎样才能达到我的目的?

4 个答案:

答案 0 :(得分:4)

'0' '\0'相同。

字符'0'的ascii值为48

'\0'转义值(由\生成),并引用ascii值0,即空字符。

因此,date[14] = '0'将存储符号 0,而date[14]='\0'将存储 0(并将其标记为以null结尾的字符串的结尾。)

答案 1 :(得分:4)

将字符'0'存储在字符数组中主要是按照您尝试的方式正确,您说您有char date[16]所以索引包括终止{{ 1}}从0到15,你不能给'\0'分配任何东西。

取决于date[16]的完整内容,应该是date

char date[17]

答案 2 :(得分:1)

如果数组没有完全打印,那么可能会有一些垃圾'\0' 你有没有初始化整个阵列?

#include <stdio.h>

int main ()
{
    char date[] = { [0 ... 14] = '0', [15] = '\0' };

    printf("%s\n", date);
    return 0;
}

预期输出为000000000000000

答案 3 :(得分:0)

'0'中存储date[14] = '0';字符将完全符合您的要求。