首页 > 代码库 > sort对二维字符数组排序(转)
sort对二维字符数组排序(转)
由于二维字符数组的第二维没有赋值运算符,即不能对整个一维数组进行赋值,因此是无法直接对二维数组用sort进行排序的,解决办法有二种:
代码一:
1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 struct Data 7 { 8 char data[100]; 9 }str[100];10 11 bool cmp(const Data &elem1, const Data &elem2)12 {13 if (strcmp(elem1.data, elem2.data) < 0)14 return true;15 return false;16 }17 18 19 int main()20 {21 int n, i;22 while (cin>>n)23 {24 for (i=0; i<n; ++i)25 {26 cin>>str[i].data;27 }28 29 sort(str, str+n, cmp);30 31 for (i=0; i<n; ++i)32 cout<<str[i].data<<endl;33 }34 return 0;35 }
利用上面的方法将将数组放到结构体中,结构体中,这样赋值操作符就可用了,结构体中的数组可以进行整体赋值
代码二:
1 bool cmp(const char *elem1, const char *elem2) 2 { 3 if (strcmp(elem1, elem2) < 0) 4 return true; 5 return false; 6 } 7 8 int main() 9 {10 char str[100][100];11 char *pStr[100] = {NULL};12 int n, i;13 while (cin>>n)14 {15 for (i=0; i<n; ++i)16 {17 cin>>str[i]; 18 pStr[i] = str[i];19 }20 sort(pStr, pStr+n, cmp);21 for (i=0; i<n; ++i)22 cout<<pStr[i]<<endl;23 }24 return 0;25 }
这样也可以实现对二维数组进行排序
sort对二维字符数组排序(转)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。