这个代码输出后的结果为什么是这个?不应该是最小的那个吗


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

void f(char p[][10],int n)/*字符串从小到大排序 */
{    char t[10];int i,j;
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(strcmp(p[i],p[j])>0)
         {
            strcpy(t,p[i]);
            strcpy(p[i],p[j]);
            strcpy(p[j],t);
         }
}
int main()
{    char p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};
    f(p,5);
    cout<<strlen(p[0]);
    return 0;
}

"aabdfg"就是字典序最小的字符串