不要转阿斯克码 用strlen函数比较
时间: 2024-12-24 08:21:15 浏览: 12
如果你想直接按照字典顺序对字符串数组进行升序排序,而不转换成ASCII码,你可以使用C语言的标准库函数`strcmp()`,它直接比较两个字符串的字典顺序。`strlen()`函数则可以获取字符串的长度,用于遍历整个数组。下面是一个简单的示例,展示了如何使用这两个函数配合进行字符串数组的排序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STRINGS 5
char str_array[MAX_STRINGS][50];
void sort_strings(void) {
int len = strlen(str_array);
int i, j;
// 冒泡排序
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (strcmp(str_array[j], str_array[j + 1]) > 0) { // 字典序比较
// 交换字符串
char temp[50];
strcpy(temp, str_array[j]);
strcpy(str_array[j], str_array[j + 1]);
strcpy(str_array[j + 1], temp);
}
}
}
}
int main() {
str_array[0] = "def";
str_array[1] = "abc";
str_array[2] = "jkl";
str_array[3] = "mno";
str_array[4] = "ghi";
printf("Before sorting:\n");
for (int i = 0; i < MAX_STRINGS; i++) {
printf("%s ", str_array[i]);
}
sort_strings();
printf("\nAfter sorting in alphabetical order:\n");
for (int i = 0; i < MAX_STRINGS; i++) {
printf("%s ", str_array[i]);
}
return 0;
}
```
在这个例子中,我们用`strcmp()`函数替代了ASCII码值比较,并在`sort_strings`函数内部进行字符串数组的升序排序。
阅读全文