首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

跪求:用指向指针方法对n个字符串排序并输出解决办法

2012-04-11 
跪求:用指向指针方法对n个字符串排序并输出各位大哥大侠帮帮小弟,弟是C新手~~[解决办法]C/C++ codevoid So

跪求:用指向指针方法对n个字符串排序并输出
各位大哥大侠帮帮小弟,弟是C新手~~

[解决办法]

C/C++ code
void Sort(char** strs,int n){    for(int i = 0;i < n - 1;i++)    {        for(int j = 0;j < n - 1- i;j++)        {            if(strcmp(strs[j],strs[j + 1]) > 0)            {                char* strTemp = strs[j];                strs[j] = strs[j + 1];                strs[j + 1] = strTemp;            }        }    }}int main(){    char *a[] = {"abc","dfe","aaa","few","9ifew"};    int n = sizeof(a) / sizeof(a[0]);    Sort(a,n);    for(int i = 0;i < n;i++)    {        printf("%s\n",a[i]);    }    return 0;}
[解决办法]
指针数组,其每个指针指向字符串,利用库函数排序
[解决办法]
使用qsort
C/C++ code
#include<string.h>#include<stdio.h>#include<stdlib.h>int sortCompare(const void *arg1, const void *arg2){    return strcmp((const char*)arg1, (const char*)arg2);   }int main(){    char *str[] = {"one","two","three","four","five"};    int n = sizeof(str) / sizeof(str[0]);    qsort((void*)str, n, sizeof(char*), sortCompare);    for (int i=0; i<n; i++)        puts(str[i]);    system("PAUSE");    return 0;}
[解决办法]
探讨

使用qsort
C/C++ code
#include<string.h>
#include<stdio.h>
#include<stdlib.h>

int sortCompare(const void *arg1, const void *arg2)
{
return strcmp((const char*)arg1, (const char*)arg2);
}

int ……

[解决办法]
C/C++ code
#include "stdio.h"#include "stdlib.h"#include "string.h"void sort(char * str[],int size){    int i,j;    char *temp;    for(i=0;i<size-1;i++)    {        for(j=i+1;j<size;j++)        {            if(strcmp(str[i],str[j])>0)            {                temp=str[i];                str[i]=str[j];                str[j]=temp;            }        }    }} int main(void){    char *p[5],str[5][20];    int i;    for(i=0;i<5;i++)    {        scanf("%s",str[i]);        p[i]=str[i];    }    sort(p,5);    printf("排序后的结果为:\n");    for(i=0;i<5;i++)        printf("%s\n",p[i]);    system("pause");    return 0;} 

热点排行