当前位置:首页 » 编程语言 » c语言字符字典序排序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言字符字典序排序

发布时间: 2022-09-20 00:37:20

c语言字符串排序

#include<stdio.h>

#include<string.h>

#define SIZE 91

#define LIM 31

#define HALT""

void stsrt(char*strings[],int num);

int main(void)

{

char input[LIM][SIZE];

char*ptstr[LIM];

int ct=0;

int k=0;

printf("input up to%d lines,and I will sort them. ",LIM);

printf("To stop,press the enter key at a line's start. ");

while(ct<LIM&&gets_s(input[ct],100)!=NULL&&input[ct][0]!='')

{

ptstr[ct]=input[ct];

ct++;

}

stsrt(ptstr,ct);

puts(" here's the sorted list: ");

for(k=0;k<ct;k++)

{

puts(ptstr[k]);

}

puts(" here's the list: ");

for(k=0;k<ct;k++)

{

puts(input[k]);

}

return 0;

}

void stsrt(char*strings[],int num)

{

char*temp;

int top,seek;

for(top=0;top<num-1;top++)

{

for(seek=top+1;seek<num;seek++)

{

if(strcmp(strings[top],strings[seek])>0)

{

temp=strings[top];

strings[top]=strings[seek];

strings[seek]=temp;

}

}

}

(1)c语言字符字典序排序扩展阅读:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

㈡ C语言题:将一组字符串按字典顺序输出。(通过函数调用完成)

将一组字符串按字典顺序输出的源代码如下:

#include <stdio.h>

int main ()

{

char name[40] ; //声明一个叫name的储存空间,数组的元素数目是40

printf("what is your name ? ");//转化说明字符/n换行

scanf("%s,name");//输入一个字符串,使用了%s的转化修饰符,表示输入字符串

printf("hello,%s. ",name);//输出字符串

return 0;

}

(2)c语言字符字典序排序扩展阅读

1、两个字符串,如果两个字符串相等,则返回0;若str1大于str2(对于大于的理解,是指从两个字符串的第一个字符开始比较,若两个字符相同,则继续比较,若发现两个字符不相等。

2、对于将数字转换为字符串,c标准中并没有定义。c标准中没有定义的原因我觉得是数字转成字符串可以使用sprintf格式化输出函数来完成。

㈢ C语言:设计一个函数,其功能是对数组name中指向的字符串按字典顺序排序

#include<stdio.h>
#include<string.h>
void main()
{
void sort(char *s[],int n);
static char *name[5]={"basic","fortran","cobol","pascal","c"};
int i;
sort (name,5);
printf("新排序字符串:\n");
for (i=0;i<5;i++)
puts(name[i]);
}
void sort(char *s[],int n){
char *t;
int i,j,k;
for (i=0;i<n-1;i++){
k=i;
for (j=i+1;j<n;j++)
if (strcmp(s[k],s[j])>0) k=j;
if (k!=i)
t=s[i],s[i]=s[k],s[k]=t;
}
}

㈣ C语言编程解决字符串数组字典排序

#include<stdio.h>
#include<string.h>

constintMAXLEN=100;
constintMAXSIZE=10;

voidsort(chartitle[][MAXLEN],intn){//排序
inti,j,k;
chartstr[MAXLEN];
for(i=0;i<n-1;++i){
k=i;
for(j=i+1;j<n;++j){
if(strcmp(title[k],title[j])>0)
k=j;
}
if(k!=i){
strcpy(tstr,title[k]);
strcpy(title[k],title[i]);
strcpy(title[i],tstr);
}
}
}

voidshow(chars[][MAXLEN],intn){
inti;
for(i=0;i<n;++i)
printf("%s",s[i]);
puts("");
}

intmain(void){
chars[MAXSIZE][MAXLEN];
inti;
for(i=0;i<MAXSIZE;++i){
printf("string(%02d/%d):",i+1,MAXSIZE);
fgets(s[i],MAXLEN,stdin);
}
printf("排序前: ");
show(s,MAXSIZE);
sort(s,MAXSIZE);
printf("排序后: ");
show(s,MAXSIZE);
return0;
}

㈤ C语言 字符串数组字典排序

#include<stdio.h>
#include<string.h>

constintMAXLEN=100;
constintMAXSIZE=10;

voidsort(chartitle[][MAXLEN],intn){//排序
inti,j,k;
chartstr[MAXLEN];
for(i=0;i<n-1;++i){
k=i;
for(j=i+1;j<n;++j){
if(strcmp(title[k],title[j])>0)
k=j;
}
if(k!=i){
strcpy(tstr,title[k]);
strcpy(title[k],title[i]);
strcpy(title[i],tstr);
}
}
}

voidshow(chars[][MAXLEN],intn){
inti;
for(i=0;i<n;++i)
printf("%s",s[i]);
puts("");
}

intmain(void){
chars[MAXSIZE][MAXLEN];
inti;
for(i=0;i<MAXSIZE;++i){
printf("string(%02d/%d):",i+1,MAXSIZE);
fgets(s[i],MAXLEN,stdin);
}
printf("排序前: ");
show(s,MAXSIZE);
sort(s,MAXSIZE);
printf("排序后: ");
show(s,MAXSIZE);
return0;
}

㈥ c语言什么叫按字典序排序

就是说,将多个字符串的同一位置的字符按照26个字母的顺序进行比对。a最小,z最大。

a < b;

aa < ab; 因为第二位置上,前面字符串是a,后面字符串是b,所以是小于关系,以此类推。

㈦ C语言中如何将10个字符串进行排序

#include<stdio.h>

#include<string.h>

int main()

{

int j,k,i,t,n;

char s[10][10],b[10][10];

for(i=0;i<10;i++)

{

scanf("%s",s[i]);

}

n=strlen(s[1]);

k=0;

for(i=0;i<9;i++)

{

for(j=0;j<9-i;j++)

if(strcmp(s[j],s[j+1])>0)

{

for(k=0;k<n;k++)

b[j][k]=s[j][k];

for(k=0;k<n;k++)

s[j][k]=s[j+1][k];

for(k=0;k<n;k++)

s[j+1][k]=b[j][k];

}

}

for(i=0;i<10;i++)

{

printf("%s ",s[i]);

}

return 0;

}

运行效果:

(7)c语言字符字典序排序扩展阅读:

scanf函数用法:

scanf("输入控制符",输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志''。

㈧ c语言中如何通过函数按字典顺序排列输入的十个字符串

如果使用的是冒泡排序,那么和整数排序唯一的不同就是这个部分:

if(a[j]>a[j+1])
swap(a[j],a[j+1]);

那么在字符串排序的时候,需要用到一个库函数叫strcmp(char a[],char b[]);

这个函数在<cstring>库中[或者c语言中在<string.h>库中]

这个函数的用法就是输入字符串a,b,判断a,b的字典序大小.

若a的字典序小返回负值

若a的字典序和b相同返回0

若a的字典序大于b的字典序返回正数

然后你将上面冒泡的部分改一下的话就是:

if(strcmp(a[j],a[j+1])>0)
swap(a[j],a[j+1]);

这样的话就可以实现冒泡排序了.


如果你使用的是系统快排的话,你可以用string,也可以定义一个结构体

structNode{
charch[1000];
}s[12];

boolcmp(constNode&A,constNode&B){
returnstrcmp(A.ch,B.ch)<0;
}

intmain(){
...
sort(s+1,s+10+1,cmp);
...
}

这样的话也是可以实现的.

㈨ C语言中字典排序是什么意思

按照字典的顺序
即按照字母表的顺序,由A-Z
如 Aaa 在Baa之前 , Aaa在Aab之前
同理,Aa在Aaaaa之前(一个为另一个前缀时,短的靠前)

㈩ C语言中说的按字典顺序是什么意思

就是说,将多个字符串的同一位置的字符按照26个字母的顺序进行比对。a最小,z最大。

a < b;

aa < ab; 因为第二位置上,前面字符串是a,后面字符串是b,所以是小于关系,以此类推。