PSJay Blog

#FIXME, seriously

C语言字符串初始化

| Comments

今天才知道,原来在C语言中字符串是需要手动初始化的。如下:

1
2
3
char aString[255];
printf("%s",aString);     //这样就会出现一堆难看非常的乱码
strlen(aString);    //这里当然也不会等于0

如果要给字符串初始化为空,有两种方法。

1
2
char aString[255];
aString[0] = '\0';    //这样,第一个字符就是结束标志了,但是后面的字符还是随机的

或者

1
char aString[255] = {'\0'};   //在定义的时候这样初始化,每一个字符就都为空了

一个这种小细节,折腾了我一个多小时。我居然天真的一位C语言中定义字符串的同时就自动设为空了。真怀念java的new String();。

Comments