| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1511 人关注过本帖, 1 人收藏
标题:分享快乐散分(小牛 中牛 大牛 统统飘过~~~~~~~)
取消只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏(1)
已结贴  问题点数:20 回复次数:3 
分享快乐散分(小牛 中牛 大牛 统统飘过~~~~~~~)
题目:估计老掉牙了
由控制台输入N行字符串  由程序把这些字符串接收进来  然后对这些字符串进行排序  最后输出排序后的字符串。


解题有2种方式:
1、使用指针数组  2、使用二级字符串指针

下面分别就这两种方式给出代码  欢迎指正

1、以下是使用指针数组完成

程序代码:
//////////////////////////////////////////////////////////
#include <stdio.h>
#include <string.h>
#include <malloc.h>

#define N 10

int main()
{
    char *p[N];
    char *tmp;
    int i=0,j=0;
    for(i=0;i<N;i++)
    {
        p[i]=(char*)malloc(256);     //给字符串开辟内存空间
        memset(p[i],0,sizeof(p[i]));  //初始化为 0
    }
    i=0;
    while(i<N)
    {
        scanf("%s",p[i]);
        i++;
    }
    for(i=0;i<N;i++)
    {
        for(j=i+1;j<N;j++)
        {
            if(strcmp(p[i],p[j])>0)   //由小到大排序
            {
                tmp=p[i];
                p[i]=p[j];
                p[j]=tmp;
            }
        }
    }
    printf("======== 神奇的分界线========\n");
    for(i=0;i<N;i++)
    {
        printf("%s\n",p[i]);
    }
    return 0;
}


2、以下使用二级字符串指针完成
程序代码:
#include <stdio.h>
#include <string.h>
#include <malloc.h>

#define N 10

int main()
{
    char **p;
    char *tmp;
    int i=0,j=0;
    p= (char**)malloc(N*sizeof(char*));  //给指针数组开辟内存空间
    for(i=0;i<N;i++) *(p+i)=(char*)malloc(256);  //给字符串开辟内存空间
    i=0;
    while(i<N)
    {
        scanf("%s",*(p+i));
        i++;
    }
    for(i=0;i<N;i++)
    {
        for(j=i+1;j<N;j++)
        {
            if(strcmp(*(p+i),*(p+j))>0)   //由小到大排序
            {
                tmp=*(p+i);
                *(p+i)=*(p+j);
                *(p+j)=tmp;
            }
        }
    }
    printf("======== 神奇的分界线========\n");
    for(i=0;i<N;i++)
    {
        printf("%s\n",*(p+i));
    }
    return 0;
}




搜索更多相关主题的帖子: include 控制台 字符串 
2013-08-09 21:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用beyondyf在2013-8-9 23:19:47的发言:

哥,我就想提醒一句,记得释放动态申请的空间。
没事   windows 会自动管理内存的  哈哈

DO IT YOURSELF !
2013-08-10 07:20
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
写这个  主要是以前对  char **p  始终搞不懂   具体咋用

而书上  或网上  资料有限    这个基本上是自己N+1次失败  摸索着弄出来的  所以很高兴

DO IT YOURSELF !
2013-08-10 07:22
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
一高兴 就忘乎所以  连释放内存  最基本的常识 都忘掉了

DO IT YOURSELF !
2013-08-10 07:22
快速回复:分享快乐散分(小牛 中牛 大牛 统统飘过~~~~~~~)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032676 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved