C语言编程题,输入5个字符串,然后排序

C语言编程题,输入5个字符串,然后排序,第1张

#define LINEMAX 20/定义字符串的最大长度/

int main()

{int i;

charp,pstr[5],str[5][LINEMAX];

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

pstr<i>=str<i>;/将第i个字符串的首地址赋予指针数组pstr的第i个元素/

printf("input 5 strings:\n");

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

scanf("%s",pstr<i>);

p=pstr;

sort(p);

printf("strings sorted:\n");

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

printf("%s\n",pstr<i>);

}

sort(charp)/冒泡法对5个字符串排序函数/

{int i,j;

chartemp;

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

{for(j=i+1;j<5;j++)

{if(strcmp((p+i),(p+j))>0)/比较后交换字符串地址/

{temp=(p+i);

(p+i)=(p+j);

(p+j)=temp;

}

}

}

return 0;

}

扩展资料:

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d\n",a);

输出结果为a=1234。

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdioh里,因此在使用scanf函数时要加上#include<stdioh>。

int scanf(const charrestrict format,);

函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

如:

scanf("%d%d",&a,&b);

函数返回值为int型,如果a和b都被成功读入,那么scanf的返回值就是2。

看你代码原意,是想定义一个字符串数组strs。

但是你写的char strs[5];表示的是一个维度为5的指针数组。

你可以把strs直接改成字符串数组,char strs[5][N],但你后面的函数参数类型也要跟着改。

如果你不想改动其他函数,还继续使用指针数组,也是可以的。

你可以用动态内存来写输入部分:(头文件添加malloch)

#include <stdioh>

#include <malloch>

#define N 100//每个字符串最大长度

int main()

{

    int i;

    char strs[5];

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

    {

        strs[i]=(char )malloc(sizeof(char)(N+1));

        if(strs[i])

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

        else

        {

            printf("错误内存申请失败!\n");

            return 1;

        }

    }

    return 0;

}

#include <stdioh>

#include <stringh>

void sortstr(char ,int);

void main()

{

static char proname[]={

"pascal",

"basic",

"cobol",

"prolog",

"lisp"};

int i;

sortstr(proname,5);

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

printf("%s\n",proname[i]);

}

void sortstr(char v[],int n)

{

int i = 0;

int j = 0;

char temp;

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

{

for(j = i; j < n;j++)

{

if(0 < strcmp(v[i],v[j]))

{

temp = v[i];

v[i] = v[j];

v[j] = temp;

}

}

}

}

linux sort命令详解

1

sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

2

sort的-u选项 它的作用很简单,就是在输出行中去除重复行。

3

sort的-r选项 sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。

使用sort命令排序方式

sql语句去重 distinct sortlinux命令 linux按字母排序文件 sort函数对字符串排序 sorted怎么降序 linux2分钟后关机 sort对string排序 DBMS指的是以下哪个选项 linux sort 按照列排序 cut命令 sort语句 sort命令 shell脚本实现文件备份 cut命令详解 java中sort方法怎么用

1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

2 sort的-u选项 它的作用很简单,就是在输出行中去除重复行。

3 sort的-r选项

#include<stdioh>

#include<stringh>

char str1[100], tmp;

int i,j,b,t;

void JsSort();

void main()

{

    memset(str1,0,100);

 memset(str2,0,100);

 printf("please enter no");

 for(i=0;(str1[i]=getchar())!='\n';i++);

 str1[i]='\0';

 JsSort();

 printf("%s\n",str1);

 system("pause");

}

void JsSort()

{

 b=strlen(str1);

 for(i=0;i<b-2;i+=2)

   for(j=0;j<b-2-i;j+=2)

    if (str1[j]<str1[j+2])

    {t=str1[j]; str1[j]=str1[j+2]; str1[j+2]=t;}

}

//我写的一个简单的使用C++ sort的例子,供你参考

#include <iostream>

#include <algorithm>

typedef struct _TestSortArray

{

char _arrStr[16];

}TestSortArray;

int main()

{

TestSortArray tsa;

tsa_arrStr[15] = 0;

char a = 'z';

for (int i = 0;i < 15; ++i)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/12185566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存