#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