| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 571 人关注过本帖
标题:求大神帮忙 数组指针!弄了一天了 一个改错题
只看楼主 加入收藏
GUnever
Rank: 2
等 级:论坛游民
帖 子:59
专家分:25
注 册:2012-3-3
结帖率:95.24%
收藏
已结贴  问题点数:10 回复次数:7 
求大神帮忙 数组指针!弄了一天了 一个改错题
/*排序字符串,若输入:this test terminal,以下程序的输出结果为:terminal test this.*/
#include<stdio.h>
#include<string.h>

#define  MAXLINE 20

void sort(char *pstr[]);

int main(void)        
{
    int i;
    char *pstr[3], str[3][MAXLINE];

    for (i=0; i<3; i++)
    {
        pstr[i] = str[i];
    }

    printf("Please input:");
    for (i=0; i<3; i++)
    {
        /*********Found************/
        scanf("%s", pstr+i);
    }

    sort(pstr);
    printf("output:");
    for (i=0; i<3; i++)
    {
        /*********Found************/
        printf("%s\n", pstr);
    }

    return 0;
}

void sort(char *pstr[])
{
    int i, j;
    char *p;

    for (i=0; i<3; i++)
    {
        for (j=i+1; j<3; j++)
        {
            /*********Found************/
            if (strcmp(pstr+i, pstr+j) > 0)
            {
                p = *(pstr+i);
                *(pstr+i) = *(pstr+j);
                *(pstr+j) = p;
            }
        }
    }
}
搜索更多相关主题的帖子: void include 字符串 
2012-05-13 14:43
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:2 
#include <iostream>
#include <string>
using namespace std;
int cmp(const void*a,const void*b)
{
    return strcmp((*(string *)a).c_str(),(*(string *)b).c_str());
}
int main()
{
    string a[3];
    cin>>a[0]>>a[1]>>a[2];
    qsort(a,3,sizeof(a[0]),cmp);
    cout<<a[0]<<" "<<a[1]<<" "<<a[2];
}
2012-05-13 16:34
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
字符串处理还是用C++的好
2012-05-13 16:35
海盗许毅
Rank: 2
等 级:论坛游民
帖 子:12
专家分:15
注 册:2012-4-30
收藏
得分:2 
你的好多概念没搞清楚,核心代码存在问题。
#include<stdio.h>
#include<string.h>

#define  MAXLINE 20

void sort(char **);

int main(void)        
{
    int i;
    char *pstr[3], str[3][MAXLINE];

    for (i=0; i<3; i++)
    {
        pstr[i] = str[i];
    }

    printf("Please input:");
    for (i=0; i<3; i++)
    {
        
        scanf("%s", *(pstr+i));
    }

    sort(pstr);

    printf("output:\n");
    for (i=0; i<3; i++)
    {
        
        printf("%s\t", *(pstr+i));
    }

    putchar('\n');

    return 0;
}

void sort(char **pstr)
{
   
    char **p=pstr+2;
    char t[MAXLINE];

    for (;pstr<p;++pstr,p--)
    {
        strcpy(t,*pstr);
        strcpy(*pstr,*p);
        strcpy(*p,t);
        
    }
}
2012-05-13 17:27
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:2 
程序代码:
#include<stdio.h>
#include<string.h>

#define  MAXLINE 20

void sort(char *pstr[]);

int main(void)       
{
    int i;
    char *pstr[3], str[3][MAXLINE];

    for (i=0; i<3; i++)
    {
        pstr[i] = str[i];
    }

    printf("Please input:");
    for (i=0; i<3; i++)
    {
        /*********Found************/
        scanf("%s", *(pstr+i));
    }

    sort(pstr);
    printf("output:");
    for (i=0; i<3; i++)
    {
        /*********Found************/
        printf("%s\n", *(pstr+i));
    }

    return 0;
}

void sort(char *pstr[])
{
    int i, j;
    char *p;

    for (i=0; i<3; i++)
    {
        for (j=i+1; j<3; j++)
        {
            /*********Found************/
            if (strcmp(*(pstr+i), *(pstr+j)) > 0)
            {
                p = *(pstr+i);
                *(pstr+i) = *(pstr+j);
                *(pstr+j) = p;
            }
        }
    }
}
弄清楚二维数组和二级指针的对应关系就好了!
2012-05-13 17:46
_593818864
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2012-4-18
收藏
得分:2 
真不知道我何时才能成为大神这种级别的人啊
2012-05-13 21:09
A雨田A
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2012-5-12
收藏
得分:2 
加油吧
2012-05-14 09:00
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:2 
程序代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_WIDTH 20

int cmp(const void*, const void*);

int main(void)
{
    char strings[3][MAX_WIDTH];
    int i;
   
    for (i = 0; i < 3; ++i)
        scanf("%s", strings[i]);
    qsort(strings, 3, MAX_WIDTH, cmp);
    for (i = 0; i < 3; ++i)
        printf("%s\n", strings[i]);
   
    return 0;
}

int cmp(const void* p1, const void* p2)
{
    return strcmp((const char*)p1, (const char*)p2);
}

My life is brilliant
2012-05-14 12:59
快速回复:求大神帮忙 数组指针!弄了一天了 一个改错题
数据加载中...
 
   



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

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