| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 533 人关注过本帖
标题:字符串排序小程序求助
只看楼主 加入收藏
madzhou
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-4-9
收藏
 问题点数:0 回复次数:1 
字符串排序小程序求助
//问题1:将文本文件filestr.txt文件中的字符串(如城市名: Tokyo  Beijng       Bon   Detroit  Jerusalem    London    Moscow     Paris      Rome   Bombey  )进行排序,然后再写回该文件中.如果在变量声明中char* tmpstr则出现内存问题,哪位高人指点一二.
//问题2:这两个语法是否都合适?if(strcmp(buffer[ix],buffer[j])==1)//strcmp(buffer[ix],buffer[j])>0
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


char* buffer[200];

int main(void)
{
    int ix,j,sz;
    FILE* fp;
    char str[200][80];//接受来自文件的字符串
    char tmpstr[20];//char* tmpstr不可以?

    if((fp=fopen("filestr.txt","r+"))==NULL)
    {
        fprintf(stderr,"can't open file filestr.txt .\n");
        exit(1);
    }
    sz=0;
    //从文件中读取字符串存入缓冲区
    while(!feof(fp))
    {
        fscanf(fp,"%10s",str[sz]);
        buffer[sz]=str[sz];
        sz++;
    }
    //排序

    for(ix=0;ix<sz-1;ix++)
        for(j=ix+1;j<sz;j++)
            if(strcmp(buffer[ix],buffer[j])==1)//strcmp(buffer[ix],buffer[j])>0也可?
            {
                strcpy(tmpstr,buffer[ix]);
                    strcpy(buffer[ix],buffer[j]);
                        strcpy(buffer[j],tmpstr);
                 
            }
            sz--;
            rewind(fp);
            for(ix=0;ix<=sz;ix++)
                fprintf(fp,"%10s",buffer[ix]);
        
    fclose(fp);
    return 0;

}
/*原型:extern int strcmp(char *s1,char * s2);
        
 // 用法:#include <string.h>
  
  //功能:比较字符串s1和s2。
  
  //说明:
   //     当s1<s2时,返回值<0
        当s1=s2时,返回值=0
        当s1>s2时,返回值>0
*/
搜索更多相关主题的帖子: 内存 字符 London 变量 
2008-06-02 16:07
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
问题1:
用数组的话,系统会给它分配20各连续的空间,供其存放数据;
但是用指针的话,就只分配了一个空间给指针,后面的19个系统没有分配,你也没有给它分配,所以就不对了.

问题2:
当然都可以了阿,1不就是大于0的么???/

PS:
strcmp的原型不是你给的那样吧???

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-06-02 16:31
快速回复:字符串排序小程序求助
数据加载中...
 
   



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

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