用C++实现字符串排序

题目描述
有一个字符串数组包含若干个字符串 (3-10个),每个字符串都是一个单词,且每个串的长度均不超过7,要求对单词进行排序后再输出。
要求:
1
使用二维字符数组存放这些字符串;
2
为二维字符数组输入数据;
3
输出处理前和处理后的字符串数组。
输入
若千字符串
输出
排序前字符串
排序后字符串
样例输入
he mum an IBM1 bbc NBA nhk2 bad computer
样例输出
排序前:he mum an IBM1 bbc NBA nhk2 bad computer
IBM1 NBA an bad bbc computer he mum nhk2

#include <stdio.h>
#include <string.h>
int main()
{
    char s[10][8];
    int n=0;
    while(scanf("%s",s[n]) != EOF)
       n++;
    for(int i=0;i<n;i++)
      printf("%s ",s[i]);
    printf("\n");
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-i-1;j++)
        {
            if(strcmp(s[j],s[j+1]) > 0)
            {
                char *p = s[j];
                s[j] = s[j+1];
                s[j+1] = p;
            }
        }
    for(int i=0;i<n;i++)
      printf("%s ",s[i]);
}

这是按什么排序的