C语言题:将一组字符串按字典顺序输出。(通过函数调用完成)
#include <stdio.h>
int main ()
{
char name[40] ; //声明一个叫name的储存空间,数组的元素数目是40
printf("what is your name ?\n");//转化说明字符/n换行
scanf("%s,name");//输入一个字符串,使用了%s的转化修饰符,表示输入字符串
printf("hello,%s.\n",name);//输出字符串
return 0;
}
扩展资料
1、两个字符串,如果两个字符串相等,则返回0;若str1大于str2(对于大于的理解,是指从两个字符串的第一个字符开始比较,若两个字符相同,则继续比较,若发现两个字符不相等。
2、对于将数字转换为字符串,c标准中并没有定义。c标准中没有定义的原因我觉得是数字转成字符串可以使用sprintf格式化输出函数来完成。
#include "stdio.h"
#include "string.h"
void orderStr(char *a)
{
int length,i,j;
char temp;
length=strlen(a);
for(i=0;i<length;i++)
for(j=i+1;j<length;j++)
if(*(a+i)>*(a+j))
{
temp=*(a+j);
*(a+j)=*(a+i);
*(a+i)=temp;
}
}
void main()
{
char str[100]={0};
printf("请输入一个字符串:\n");
gets(str);
orderStr(str);
printf("按ASCII码值从小到大排序后的字符串为:\n");
puts(str);
}
结果如图:
推荐于2017-09-11 · 知道合伙人教育行家
就是对字符串进行从小到大排序,输出排序后的字符串。
可以采用冒泡排序,例如:
#include<stdio.h>
#include<string.h>
#define N 100
void fun(char a[]){
char temp;
int i,j,n;
n=strlen(a);//计算字符串长度
for(i=0;i<n-1;i++)//从小到大冒泡排序
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
puts(a);//输出字符串
}
int main()
{
char a[N];
gets(a);//输入字符串
fun(a);//字符串排序并输出函数
return 0;
}
/*
运行结果:
321afASDF
123ADFSaf
*/