c++编程排序问题,不知道错在哪无法正常排序,无显示。

编写一个字符串排序函数SortStr(string s[], int n),对输入的n个字符串按从小到大进行排序。编写主程序,输入5个字符串,调用SortStr进行排序后输出排序结果。
实现提示:getline(cin,str) 函数可以从cin输入带空格的字符串。

#include "iostream"
#include "string"
using namespace std;

void SortStr(string s[],int n)
{
int i,j;
string t;
for(i=0;i {
for(j=i;j {
if(s[i]>s[j+1])
{
t=s[i];
s[i]=s[j+1];
s[j+1]=t;
}
}
}
}
int main(int argc,char*argv[])
{
int i,n;
string s;
n=5;
for(i=0;i<n;i++){
getline(cin,s);
}
SortStr(&s,5);
for(i=0;i<n;i++)
{
cout<<s[i]<<endl;
}
return 0;
}

#include <iostream>
#include <string>
using namespace std;

void SortStr(string s[],int n)
{
    int i,j;
    string t;
    for(i=0;i<n-1;i++) {
        for(j=0;j<n-1-i;j++) {
            if(s[j]>s[j+1])
            {
                t=s[j];
                s[j]=s[j+1];
                s[j+1]=t;
            }
        }
    }
}
int main(int argc,char*argv[])
{
    int i,n;
    string s[5];
    n=5;
    for(i=0;i<n;i++){
      getline(cin,s[i]);
    }
    SortStr(s,5);
    for(i=0;i<n;i++)
    {
        cout<<s[i]<<endl;
    }
    return 0;
}

string s;你这里值定义了一个字符串,每次输入也是覆盖这个字符串,相当于排序的时候只有一个字符串,当然没有结果。

//冒泡排序
for( i = 0; i < n - 1; i++ ) {
    for( j = n; j > i; j--) {
        if( s[j] > s[j] ) {
            t = s[j];
            s[j] = s[j];
            s[j] = t;
        }
    }
}
//插入排序
for( i = 0; i < n - 1; i++) {
    for( j = i + 1; j < n; j++) {
        if( s[i] > s[j]) {
            t = s[i];
            s[i] = s[j];
            s[j] = t;
        }
    }
}