反向输出字符串:
在main函数体中定义两个字符数组,分别为源字符数组和目标字符数组,然后循环遍历源字符数组的同时,将读取的字符从目标字符数组的末尾开始向前插入,最后分别输出源字符数组和目标字符数组。代码程序如下:
#include<stdio.h>
int main()
{
int i;
char String[13]={"hello world!"};
char Reverse[13]={"0"};
int size;
size=sizeof(String);
for ( i = 0; i < 12;i++)
{
Reverse[size-i-2]=String[i];
/* code */
}
printf("源字符串:%s\n",String);
printf("目标字符串:%s\n",Reverse);
return 0;
}
输出结果为:
源字符串:hello world!
目标字符串:!dlrow olleh
值得注意sizeof计算字符串长度的时候默认将结束标记符“\0”也包括进去了
不解的是如果不定义字符串的长度为13的话,直接弄个空的,那输出的结果就会出错?这是为什么?