字典函数c语言 c语言实现字典数据结构

C语言!!!!字典!!!!!

#include iostream

肇源网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。成都创新互联从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

#include map

#include cstdio

#include string

using namespace std ;

mapstring,string m ;

int main( )

{

char s[42] , *p , *q ;

int i ;

while( gets( s ) s[0] != '\0' )

{

p = strtok( s , " " ) ;

q = strtok( NULL , " " ) ;

m[q] = p ;

}

while( ~scanf("%s", s ) )

{

if( m.find( s ) != m.end() )

printf("%s\n", m[s].c_str() ) ;

else

printf("eh\n") ;

}

return 0 ;

}

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,也可以定义一个结构体

struct Node{

char ch[1000];

}s[12];

bool cmp(const Node A,const Node B){

return strcmp(A.ch,B.ch)0;

}

int main(){

...

sort(s+1,s+10+1,cmp);

...

}

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

C语言常用词汇及函数有那些?

常用词汇:

1、short:修饰int,短整型数据,可省略被修饰的int。

2、long:修饰int,长整型数据,可省略被修饰的int。

3、long long:修饰int,超长整型数据,可省略被修饰的int。

4、signed:修饰整型数据,有符号数据类型。

5、unsigned:修饰整型数据,无符号数据类型。

6、restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。

7、return:用在函数体中,返回特定值(如果是void类型,则不返回函数值)。

8、continue:结束当前循环,开始下一轮循环。

9、break:跳出当前循环或switch结构。

10、goto:无条件跳转语句。

11、if:条件语句,后面不需要放分号。

12、else:条件语句否定分支(与if连用)。

13、switch:开关语句(多重分支语句)。

14、case:开关语句中的分支标记,与switch连用。

15、default:开关语句中的“其他”分支,可选。

常用函数:

1、int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z'),返回非0值,否则返回0。

2、int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0。

3、int abs(int i) 返回整型参数i的绝对值。

4、double cabs(struct complex znum) 返回复数znum的绝对值。

5、double fabs(double x) 返回双精度参数x的绝对值。

6、long labs(long n) 返回长整型参数n的绝对值。

参考资料来源:百度百科—C语言

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

#include stdio.h

#include string.h

const int MAXLEN = 100;

const int MAXSIZE = 10;

void sort(char title[][MAXLEN],int n) {//排序

int i,j,k;

char tstr[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);

}

}

}

void show(char s[][MAXLEN],int n) {

int i;

for(i = 0; i  n; ++i)

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

puts(" ");

}

int main(void) {

char s[MAXSIZE][MAXLEN];

int i;

for(i = 0; i  MAXSIZE; ++i) {

printf("string(%02d/%d):",i + 1,MAXSIZE);

fgets(s[i],MAXLEN,stdin);

}

printf("排序前:\n");

show(s,MAXSIZE);

sort(s,MAXSIZE);

printf("排序后:\n");

show(s,MAXSIZE);

return 0;

}

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

用二维数组记录书名,再声明一个指针数组并使各元素分别指向各书名,然后对指针数组元素按其指向的书名的字典顺序排序。这样比直接拷贝书名的效率会高些。举例如下:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

#include "string.h"

#define N 10

void mysort(char *s[],int n){

int i,j,k;

for(i=0;in;i++){

for(k=i,j=k+1;jn;j++)

if(strcmp(s[k],s[j])0)

k=j;

if(i!=k){

s[i]=(char *)((unsigned)s[i]^(unsigned)s[k]);//交换指针

s[k]=(char *)((unsigned)s[k]^(unsigned)s[i]);

s[i]=(char *)((unsigned)s[i]^(unsigned)s[k]);

}

}

}

int main(void){

char book[N][30],*pbook[N];

int i,k;

for(i=0;iN;pbook[i]=book[i++]);

printf("Please enter 10 book-name...\n");

for(i=0;iN;pbook[i]=book[i++])

scanf("%s",book+i);

mysort(pbook,N);

for(k=i=0;iN;printf(++k%5 ? "%s " : "%s\n",pbook[i++]));//打出来看看......

if(k%5) printf("\n");

return 0;

}


本文标题:字典函数c语言 c语言实现字典数据结构
文章分享:http://hbruida.cn/article/dochhcj.html