| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 362 人关注过本帖
标题:求教为什么输入一行字符串后程序就被终止
只看楼主 加入收藏
c3242404
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-6-22
结帖率:100%
收藏
已结贴  问题点数:14 回复次数:2 
求教为什么输入一行字符串后程序就被终止
这是c primer plus上面的例题,并未发现和书上有什么差异,为什么输入一行后就被终止了?
程序代码:
/*输入几行字符串,并将其从小到大排序*/
#include <stdio.h>
#include <string.h>
#define SIZE 81//字符串长度限制,包括\0
#define LIM 20//最多读取的行数
void stsrt (char * strings[], int num);//字符串排序函数

int main (void)
{
    char input[LIM][SIZE];//存储输入的数组
    char * p[LIM];//指针变量的数组
    int ct;//输入计数
    int k;//输出计数

    printf("Input up to %d lines, and I will sort them.\n", LIM);
    printf("To stop, press the Enter key at a line's start.\n");
    while(ct < LIM && gets(input[ct]) != NULL && input[ct][0] != '\0')
    {
        p[ct] = input[ct];//指针指向输入字符串
        ct++;
    }
    stsrt(p, ct);//调用字符串排序函数
    puts("\nHere's the sorted list:\n");
    for(k = 0; k < ct; k++)
        puts(p[k]);

    return 0;
}


void stsrt (char * strings[], int num)
{
    char * temp;
    int top,seek;

    for(top = 0; top < num -1; top++)
        for(seek = top + 1; seek < num; seek++)
            if(strcmp(strings[top], strings[seek]) > 0)
            {
                temp = strings[top];
                strings[top] = strings[seek];
                strings[seek] = temp;
            }
}
搜索更多相关主题的帖子: 字符串 
2014-09-09 15:25
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:14 
ct没有赋值就使用了
2014-09-09 15:50
c3242404
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-6-22
收藏
得分:0 
谢谢了,粗心了
2014-09-09 16:04
快速回复:求教为什么输入一行字符串后程序就被终止
数据加载中...
 
   



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

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