C++的一个小问题

#include<iostream>
using namespace std
char func(char a[]);
int main()
{
    char b[7]={'c','a','d','e','b','h','\0'};
    cout<<func(b)<<' ';
}
char func(char a[])
{
       for(int i=0;i<6;i++)
    {
        int min=a[i],mini=i;
        for(int j=i;j<6;j++)
        {
            if(a[j]<min)
            {
                min=a[j];
                mini=j;
            }
        }
        int temp=a[i];
        a[i]=a[mini];
        a[mini]=temp;
    }
    return a;
}

报错。。倒数第二行。。

error: invalid conversion from 'char*' to 'char' [-fpermissive]|

功能就是字母顺序排列
求教。。谢谢!
头文件是有的。。没显示出来

阅读 3k
3 个回答

函数func声明是返回char型,a是char指针型,返回a是会报错的,这个函数是对数组的操作,可以不用返回值或返回bool值。

@wolfogre 已经回答了报错的原因,不过结合main中调用func的代码,是必须要返回一串字符串给cout来输出。
所以func的返回值应该改成char*型,记得main函数前一句函数声明中也要修改。

楼上已经说了,另外,参数最好添加一个表示数组长度的,using namespace std; 有分号的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题