按字典顺序对字符串排序
#include
#include
int main() {
char str[5][50], temp[50];
printf("Enter 5 words: ");
// Getting strings input
for (int i = 0; i < 5; ++i) {
fgets(str[i], sizeof(str[i]), stdin);
}
// storing strings in the lexicographical order
for (int i = 0; i < 5; ++i) {
for (int j = i + 1; j < 5; ++j) {
// swapping strings if they are not in the lexicographical order
if (strcmp(str[i], str[j]) > 0) {
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
printf("\nIn the lexicographical order: \n");
for (int i = 0; i < 5; ++i) {
fputs(str[i], stdout);
}
return 0;
}
输出
Enter 5 words: R programming
JavaScript
Java
C programming
C++ programming
In the lexicographical order:
C programming
C++ programming
Java
JavaScript
R programming
为了解决该程序,创建了一个名为str的二维字符串 。该字符串最多可包含5
字符串 ,每个字符串最多可包含50
字符 (包括null
字符)。
在程序中,我们使用了两个库函数:
- strcmp()-比较字符串
- strcpy()-复制字符串
这些函数用于比较字符串并以正确的顺序对其进行排序。