2 wyb041011 wyb041011 于 2014.07.10 21:33 提问

C语言中,怎么把0写入到字符数组的某一位?

例如,想用一个for循环来初始化一个字符数组,大小100,数组的每一位的元素为其对应的下标,即:
char DataItem08[100];
for( i=0;i<100;i++)
{
DataItem08[i] = i;
}

可以发现sizeof(DataItem08)=0,原因是DataItem[0]=0,表示DataItem数组的第0位存储的是字符串结束符。有没有什么办法使得字符数组的某一位可以存放0?

求大神们赐教,谢谢!

4个回答

MSL918
MSL918   2014.07.13 09:50

可以存放,但是不能使用以0为结束标志的库函数存取,比如printf等

u010136832
u010136832   2014.07.25 08:52

你们两个在逗我,你开始的时候定义的时候就已经确定了数组Dataltem的大小事100 还用算?,你确定你已经在机器上跑过?

thebirdman
thebirdman   2014.08.04 19:57

我用gcc编译sizeof(DataItem08)大小是100,等于数组内存的大小。C 语言以'\0'作为字符串结束符,'0'的ANSCII码是48。如果要使用string.h中的库函数,应该只在字符数组结束存'\0'。

a1193561652
a1193561652   Rxr 2015.05.22 13:56

sizeof(DataItem08)是0?sizeof()是取数组的长度应该是100吧。字符串的长度(以'\0'结尾的)应该用strlen()。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!