c语言输入一个字符串,输出该字符串的字典序
时间: 2023-12-23 21:02:28 浏览: 50
可以使用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>
void sort(char **p1, char **p2, char **p3);
int main()
{
char str1[100], str2[100], str3[100];
char *p1, *p2, *p3;
printf("请输入三个字符串:\n");
scanf("%s%s%s", str1, str2, str3);
p1 = str1;
p2 = str2;
p3 = str3;
sort(&p1, &p2, &p3);
printf("排序后的结果为:\n");
printf("%s\n%s\n%s\n", p1, p2, p3);
return 0;
}
void sort(char **p1, char **p2, char **p3)
{
char *tmp;
if (strcmp(*p1, *p2) > 0)
{
tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
if (strcmp(*p1, *p3) > 0)
{
tmp = *p1;
*p1 = *p3;
*p3 = tmp;
}
if (strcmp(*p2, *p3) > 0)
{
tmp = *p2;
*p2 = *p3;
*p3 = tmp;
}
}
```
在这个程序中,sort 函数接收三个指向字符数组的指针,然后使用 strcmp 函数比较字符串的大小,从而将它们按照字典序从小到大排序。在主函数中,我们先定义三个字符数组和三个指向字符数组的指针,并使用 scanf 函数读入三个字符串。然后将这三个指针传递给 sort 函数进行排序,并最终输出排序后的结果。
用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 个字符。它使用了冒泡排序算法,将字符串按字典序从小到大排序,并输出排序后的结果。