ruiqi_101 2015-04-17 11:16 采纳率: 50%
浏览 4811
已采纳

C++编程小白求教,逆序输出字符串

#include
#include
#include
#include
//逆序输出字符串
using namespace std;

void print(const char a[],int size){
int i;
for(i=size;i>0;i--)
cout<<a[i-1];
cout<<endl;
}
void main(){

int i=0;
char a[50];
while(getchar()!='\n'){
    a[i] = getchar();
    i++;
}
print(a,sizeof(a));

while(1);

}

请问大神们,上面的代码错在哪里啊?

  • 写回答

8条回答 默认 最新

  • 鸿羽_HongYu 2015-04-18 02:34
    关注
     #include <iostream>
    #include <string.h>
    //逆序输出字符串
    using namespace std;
    void print(const char a[],int size)
    {
        int i;
        for(i=size-1;i>=0;i--)
        cout<<a[i];
        cout<<endl;
    }
    int main()
    {
        int i=0;
        char a[50];
        cin>>a;
        print(a,strlen(a));
        return 0;
    }
    

    建议你这样,你用sizeof一般情况下是错的,按照你的定义sizeof(a)的值不管你输入多少数据都是50,strlen是检测字符串长度的,没有必要这么复杂得到字符串,一个cin就可以搞定。
    再给你点建议,代码规范性,该空格的要空出来,不管自己还是别人看着都舒服。main函数类型尽量是int,并且给定返回值,现在新的编译器都不支持void类型的main函数,是会报错的。
    图片说明
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)