解题思路:
定义一个字符数组保存字符串,再定义一个字符指针保存子串的首地址,然后用sort函数排序再输出即可。
参考代码:
#include<bits/stdc++.h> using namespace std; bool cmp(char *s1,char *s2) //定义排序规则 { return strcmp(s1,s2)<0; } int main() { char s[1000]; //定义一个字符数组,保存输入字符串 char *str[1000]; //定义指针,保存每一个子串的首地址 while(cin>>s) { int len=strlen(s); //求字符串长度 for(int i=0;i<len;i++) //把每一个子串的地址保存到str中。 str[i]=s+i; sort(str,str+len,cmp); //对子串排序 for(int i=0;i<len;i++) //输出子串 cout<<str[i]<<endl; } return 0; }
0.0分
10 人评分
C语言训练-排序问题<2> (C++代码)浏览:936 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:1432 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:5275 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:565 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:593 |
1118(求助_已解决)浏览:351 |
罗列完美数 (C语言代码)浏览:519 |
统计立方数 (C语言代码)浏览:891 |
母牛的故事 (C语言代码)浏览:504 |
核桃的数量 (C语言代码)浏览:874 |