C++程序中将字符串首字母变成最后一个字母,并按字典序输出

2025-05-13 12:11:19
推荐回答(1个)
回答(1):

#include 
#include 

using namespace std;

const int MAXLEN = 100;

int main() {
char s[MAXLEN][MAXLEN],t[MAXLEN];
int i,j,k,len;
cout << "输入串:";
cin.getline(s[0],MAXLEN);
len = strlen(s[0]);
for(i = 1; i < len; ++i) { // 生成其他各个串
for(j = 0; j < len - 1; ++j)
s[i][j] = s[i - 1][j + 1];
s[i][len - 1] = s[i - 1][0];
s[i][len] = '\0';
}
for(i = 0; i < len - 1; ++i) { // 选择排序
k = i;
for(j = i + 1; j < len; ++j) {
if(strcmp(s[j],s[k]) < 0)
k = j;
}
if(k != i) {
strcpy(t,s[i]);
strcpy(s[i],s[k]);
strcpy(s[k],t);
}
}
for(i = 0; i < len; ++i)  // 输出结果
cout << s[i] << endl;
return 0;
}