c语言输入一个字符串,输出该字符串的字典序
时间: 2023-12-23 18:02:28 浏览: 133
可以使用C语言的库函数`strcmp()`来比较两个字符串的字典序大小。思路如下:
1. 使用`gets()`函数输入一个字符串;
2. 使用一个循环遍历字符串,去掉字符串末尾的空格;
3. 使用另一个循环遍历字符串,将每个字符转换为小写字母;
4. 使用`puts()`函数输出处理后的字符串;
5. 使用`strcmp()`函数比较两个字符串的字典序大小,并输出结果。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char str[100];
int i, len;
printf("请输入一个字符串:");
gets(str);
// 去掉字符串末尾的空格
len = strlen(str);
while (isspace(str[len - 1]))
{
str[--len] = '\0';
}
// 将字符串转换为小写字母
for (i = 0; str[i]; i++)
{
str[i] = tolower(str[i]);
}
// 输出处理后的字符串
puts(str);
return 0;
}
```
注意:上面的代码只是将输入的字符串处理成小写字母的形式,如果要按照字典序排序,还需要使用一些排序算法,比如快速排序等。
相关问题
c语言输入三个字符串,按由小到大输出
在C语言中,如果你想让用户输入三个字符串并按字典序从小到大输出,可以采用类似上面提到的方式,稍作调整。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int compare(const char* str1, const char* str2) {
return strcmp(str1, str2);
}
int main() {
char str1[50], str2[50], str3[50]; // 定义足够大的数组存储字符串
printf("请输入第一个字符串:");
fgets(str1, sizeof(str1), stdin); // 使用fgets获取用户的输入,防止换行符污染
str1[strcspn(str1, "\n")] = '\0'; // 移除多余的换行符
printf("请输入第二个字符串:");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = '\0';
printf("请输入第三个字符串:");
fgets(str3, sizeof(str3), stdin);
str3[strcspn(str3, "\n")] = '\0';
// 使用指针排序字符串,因为C标准库不直接支持数组的排序
if (strcmp(str1, str2) > 0) { // 比较第一个和第二个字符串
char temp[50];
strcpy(temp, str1); // 交换str1和str2
strcpy(str1, str2);
strcpy(str2, temp);
}
if (strcmp(str1, str3) > 0) { // 再次比较第一个和第三个字符串
char temp[50];
strcpy(temp, str1);
strcpy(str1, str3);
strcpy(str3, temp);
}
printf("字符串按字典序从小到大排列如下:\n");
printf("%s\n%s\n%s", str1, str2, str3);
return 0;
}
```
在这个例子中,我们先分别读取用户输入的三个字符串,然后通过嵌套的if条件判断和字符串拷贝操作,实现了排序。注意,这种方法只适用于非常小规模的数组,对于大规模数据,还是建议使用`qsort`等排序算法。
用c语言输入一批字符串,将字符串按从小到大的顺序排序并且输出
你好,这是一个技术问题,我可以回答。以下是用 C 语言实现字符串排序的示例代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
#define MAX_NUM 10
int main() {
char str[MAX_NUM][MAX_LEN];
int i, j;
char temp[MAX_LEN];
printf("请输入 %d 个字符串:\n", MAX_NUM);
for (i = 0; i < MAX_NUM; i++) {
scanf("%s", str[i]);
}
for (i = 0; i < MAX_NUM - 1; i++) {
for (j = i + 1; j < MAX_NUM; j++) {
if (strcmp(str[i], str[j]) > 0) {
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
printf("排序后的字符串为:\n");
for (i = 0; i < MAX_NUM; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
这个程序可以输入最多 10 个字符串,每个字符串最长为 100 个字符。它使用了冒泡排序算法,将字符串按字典序从小到大排序,并输出排序后的结果。
阅读全文
相关推荐
















