重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最简单的反序输出,就是把数组反序输出。只需要从最大下标开始,向0下标循环输出就可以了。
成都创新互联公司基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业成都服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。
比如将字符串(字符数组)反序输出的代码如下:
void reverse_output_str(char *str)
{
int len = strlen(str) -1;//得到最大下标
while(len = 0)printf("%c", str[len--]); //反序输出直到str[0]
}
其它类的反序输出,也都可以归结为类似的情况。先把要输出的正序输出到一个数组,然后把这个数组反序输出。
比如把一个10进制数反序输出,即输入1234,输出4321,就可以采用类似的方式:
void reverse_int_output(int a)
{
char buf[20];
sprintf(buf, "%d", a);//将a转为字符串
reverse_output_str(buf);//调用刚才的函数反序输出。
}
数组定义完,没有初始化;系统会分配一段物理内存给数组,如果不初始化,就会打印出乱码,该段内存地址有可能之前被使用过。
char i[100]={0},o[100]= {0};
结果对比:
未初始化数组
2.初始化数组
你是说*rev与rev[]吧,
在C语言里,当定义char
*rev的时候,rev是放在了常量区,值不能修改,因此会出错;
而定义char
rev[]的时候,rev数组是放在了栈区,值可以修改,因此用数组不会报错。