#include <stdio.h>
#include <stdlib.h>
#define LINEMAX 20
/* 用指向指针的指针的方法对5个字符串排序并且输出 */
int main(int argc, char *argv[]) {
//指向指针的指针的方法对5个字符串排序
void sort(char **p);
char **p,*pstr[5],str[5][LINEMAX];
int i;
for(i=0;i<5;i++)
{
pstr[i]=str[i];//将第i个字符串的首地址赋予指针数组pstr的第i个元素
}
printf("input 5 strings:\n"); //输入
for(i=0;i<5;i++) //循环对于pstr进行输入
{
scanf("%s",pstr[i]);
}
sort(pstr); //调用
printf("\nstrings sorted:\n");//输出调用的结果
for(i=0;i<5;i++) //逐个输出字符串啊
{
printf("%s\n",pstr[i]);
}
return 0;
}
void sort(char **p) // 形参为指向指针的指针
{
int i,j;
char *temp;
for(i=1;i<5;i++) //双重循环进行置换 使用的是冒泡排序的方法
{
for(j=0;j<5-i;j++)
{
if(strcmp(*(p+j),*(p+j+1))>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
#include <stdlib.h>
#define LINEMAX 20
/* 用指向指针的指针的方法对5个字符串排序并且输出 */
int main(int argc, char *argv[]) {
//指向指针的指针的方法对5个字符串排序
void sort(char **p);
char **p,*pstr[5],str[5][LINEMAX];
int i;
for(i=0;i<5;i++)
{
pstr[i]=str[i];//将第i个字符串的首地址赋予指针数组pstr的第i个元素
}
printf("input 5 strings:\n"); //输入
for(i=0;i<5;i++) //循环对于pstr进行输入
{
scanf("%s",pstr[i]);
}
sort(pstr); //调用
printf("\nstrings sorted:\n");//输出调用的结果
for(i=0;i<5;i++) //逐个输出字符串啊
{
printf("%s\n",pstr[i]);
}
return 0;
}
void sort(char **p) // 形参为指向指针的指针
{
int i,j;
char *temp;
for(i=1;i<5;i++) //双重循环进行置换 使用的是冒泡排序的方法
{
for(j=0;j<5-i;j++)
{
if(strcmp(*(p+j),*(p+j+1))>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
}
//蓝色的一块真的表示不懂
本文介绍了一个C语言程序,该程序通过指向指针的指针方式实现对五个字符串的冒泡排序,并输出排序后的结果。使用了标准库函数进行字符串比较。

4692

被折叠的 条评论
为什么被折叠?



