ujs_wantz 2021-06-13 15:32 采纳率: 0%
浏览 31

函数的参数有什么问题?

#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函数有什么问题啊一直修改都搞不懂,希望大佬解答一下

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-06-13 15:37
    关注

    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;
    }
    
    评论

报告相同问题?