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 手机连接电脑热点显示无ip分配
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大