| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 325 人关注过本帖
标题:每次输入一个字符串后就停止工作了帮帮忙!!
只看楼主 加入收藏
GKL932939348
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:21
专家分:9
注 册:2013-11-5
结帖率:85.71%
收藏
已结贴  问题点数:11 回复次数:5 
每次输入一个字符串后就停止工作了帮帮忙!!
在主函数中输入10个字符串(长度不超过10),用StrSort函数对它们进行排序,然后在主函数中输出这10个排好序的字符串。函数原型如下:
        void StrSort(char (*s)[11])
我的代码:
void exe6()
{
    char (*s)[11];
    int i;
    for(i=1;i<11;i++)
    {
        printf("请输入第%d个字符串\n",i);
        fflush(stdin);
        gets(s[i]);
    }
    StrSort(s);
    for(i=1;i<11;i++)
    {
        printf("%s\n",s[i]);
    }
}
void StrSort(char (*s)[11])
{
    int i,j,k;
    char temp[11];
    for(i=1;i<10;i++)
    {
        for(j=i+1;j<11;j++)
        {
            k=i;
            if(strcmp(s[k],s[j])>0)
                k=j;
            if(k!=i)
            {
                strcpy(temp,s[i]);
                strcpy(s[i],s[k]);
                strcpy(s[k],temp);
            }
        }
    }
}


[ 本帖最后由 GKL932939348 于 2013-12-27 09:58 编辑 ]
搜索更多相关主题的帖子: 字符串 
2013-12-27 09:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
没有分配空间  另外  交换指针就可以了  不必用到strcpy

DO IT YOURSELF !
2013-12-27 10:05
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:4 
字符指针需要分配空间
s[i]=(char*)malloc(10*sizeof(char));

三十年河东,三十年河西,莫欺少年穷!
2013-12-27 10:28
mic123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:22
专家分:123
注 册:2013-12-23
收藏
得分:4 
数组指针 和 指针数组用反了
其实我也分不太清楚这两个绕口令的玩意
但是要记得,
char* s[11]; char (*s)[11];这两种定义的有着本质的区别,
前者数组中的每个元素都是一个(char*)指针,后者数组中的每个元素类型都是char,其他的说明基本没啥意义。


试试这个
#include <stdio.h>
void StrSort(char *s[11])
{
    int i,j,k;
    char temp[10];
    for(i=1;i<2;i++)
    {
        //printf("%s\n",s[i]);
        if(strcmp(s[i],s[i+1])>0)
        {
            strcpy(temp,s[i]);
            strcpy(s[i],s[i+1]);
            strcpy(s[i+1],temp);
        }
    }
}

void main()
{
    char* s[11];
    char a;
    int i;

    for(i=1;i<3;i++)
    {
        printf("请输入第%d个字符串\n",i);
        fflush(stdin);
        s[i]=(char *)malloc(10);
        gets(s[i]);
    }
    StrSort(s);
    for(i=1;i<3;i++)
    {
        printf("%s\n",s[i]);
    }
}

[ 本帖最后由 mic123 于 2013-12-27 14:43 编辑 ]
2013-12-27 14:38
GKL932939348
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:21
专家分:9
注 册:2013-11-5
收藏
得分:0 
回复 4楼 mic123
可以!!谢了!!
2013-12-27 20:46
GKL932939348
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:21
专家分:9
注 册:2013-11-5
收藏
得分:0 
谢谢各位的帮忙!!
2013-12-27 20:46
快速回复:每次输入一个字符串后就停止工作了帮帮忙!!
数据加载中...
 
   



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

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