c语言#include <stdio.h> #include <string.h> int main() { char s[99],s1[99]; gets(s); int i,t; char n; for (i = 0; s[i] != '\0'; i++) { for (t = 0; s[t] != '\0'; t++) { if (s[i] < s[t]) { n = s[t]; s[t] = s[i]; s[i] = n; } } } puts(s); return 0; }
时间: 2024-02-01 07:03:07 浏览: 91
c语言怎么进行字符串比较.docx
这个C语言代码可以实现字符串的按照字典序从小到大排序。代码中使用了两层循环,外层循环控制字符串的每个字符,内层循环用来比较相邻的字符,如果前一个字符的ASCII码值比后一个字符的ASCII码值大,则交换它们的位置。下面对代码进行简要的解释:
1. 定义一个字符数组s,用来存储输入的字符串。
2. 定义一个整型变量i和t,用来控制循环的次数。
3. 定义一个字符变量n,用来存储交换时的中间变量。
4. 使用gets函数接收输入的字符串。
5. 外层循环控制字符串的每个字符,内层循环比较相邻的字符并进行排序。
6. 使用puts函数输出排好序的字符串。
下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s[99],n;
gets(s);
int i,t;
for(i=0; s[i]!='\0'; i++)
{
for(t=0; s[t]!='\0'; t++)
{
if(s[i]<s[t])
{
n=s[t];
s[t]=s[i];
s[i]=n;
}
}
}
puts(s);
return 0;
}
```
需要注意的是,gets函数在读取字符串时不会检查输入的长度,容易引发缓冲区溢出的问题。建议使用fgets函数代替gets函数,确保输入的字符串长度不超过数组的大小。
阅读全文