首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

生手提问:想把一个字符数组里的东西倒序的放进另一个数组,为啥错了呢

2013-10-15 
新手提问:想把一个字符数组里的东西倒序的放进另一个数组,为啥错了呢char a[6] hellochar rev_a[6]

新手提问:想把一个字符数组里的东西倒序的放进另一个数组,为啥错了呢


char a[6] = "hello";
char rev_a[6] = "";
for(int i = 0; i < 6; i++)
{
    rev_a[5-i] = a[i];
}
printf("%s\n",rev_a);

最后输出的结果 是空白,是数组下标的问题吗,研究好一阵了~~头疼 新手求解,谢谢。 printf c 数组下标
[解决办法]
for(int i = 0; i < 5; i++)
    rev_a[4-i] = a[i];
[解决办法]
引用:
printf("%s\n",rev_a);打印字符串的时候,因为其并不知道字符串的长度,所以就是找\0的位置作为结束标识,之前两个字符串的字符分别为
char a[6] = "hello";//h e l l o 0x00
char rev_a[6] = "";//0x00 0x00 0x00 0x00 0x00 0x00
而你执行完后成了
char a[6] = "hello";//h e l l o 0x00
char rev_a[6] = "/0olleh";//0x00 o l l e h
所以在打印时,第一个就遇到了0x00以为是结尾了,所以就没有打印出来,你可以改一下程序
for(int i = 0; i < 6; i++)
{
    rev_a[4-i] = a[i];
}
希望对你有帮助,其实你可以用debug来跟踪解决这个问题
不好意思,有个地方错了
for(int i = 0; i < 5; i++)
{
    rev_a[4-i] = a[i];
}

热点排行