函数的参数有什么问题?

#include <iostream>
#include <fstream>
#include <string>
using namespace std;  
void sort(string *ss)       
{int i,j,n;
 n=(*ss).length();           //计算字符串的串长(求串长的无参函数是length( ))
 for(j=1;j<=n-1;j++)
   for(i=0; i<n-1;i++)
	 if(ss[i] < ss[i+1])
	 {string t;
	  t=ss[i];
	  ss[i]=ss[i+1];
	  ss[i+1]=t;
	 }
}
int main()
{ofstream write;
 write.open("C:\\my\\str2.txt");
 string *s;
 int i,N;                  //此方法中的N是变量
 cout<<"读入待处理的字符串的个数N:"<<endl;
 cin>>N;
 s=new string;  //生成动态string型数组
 for(i=0;i<N;i++)
 {cin>>s[i];                //读入不含空格的字符串
  sort(s[i]);
 }
 for(i=0;i<N;i++)
 {cout<<s[i]<<endl;
  write<<s[i]<<endl;     //输出到str.txt文件中
 }
 write.close();
 return 0;
}

如图,上面的sort函数有什么问题啊一直修改都搞不懂,希望大佬解答一下

length只是求某个string的长度,不是求string数组的长度,还是把数组实际大小传递进来

#include <iostream>
#include <fstream>
#include <string>
using namespace std;  
void sort(string *ss,int n)       
{int i,j;
 for(j=0;j<=n-1;j++)
   for(i=0; i<n-1;i++)
	 if(ss[i] < ss[i+1])
	 {string t;
	  t=ss[i];
	  ss[i]=ss[i+1];
	  ss[i+1]=t;
	 }
}
int main()
{ofstream write;
 write.open("C:\\my\\str2.txt");
 string s[100];
 int i,N;                  //此方法中的N是变量
 cout<<"读入待处理的字符串的个数N:"<<endl;
 cin>>N;
 for(i=0;i<N;i++)
 {cin>>s[i];                //读入不含空格的字符串
  sort(s[i],n);
 }
 for(i=0;i<N;i++)
 {cout<<s[i]<<endl;
  write<<s[i]<<endl;     //输出到str.txt文件中
 }
 write.close();
 return 0;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m