| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2152 人关注过本帖, 1 人收藏
标题:求助 从txt中读取一篇文章存储到链表中,如何使读取的文章遇到遇到, 。算 ...
只看楼主 加入收藏
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef struct Art{
    char str[100];
    struct Art *next;
} abc;
abc *create()
{
    abc *head;
    head=(abc *)malloc(sizeof(abc));
    head->next=NULL;
    return(head);
}
int main()
{  
        FILE *fp;
        abc *phead=NULL,*p1,*p2;
        char s1[3]=",",s2[3]="。";//中文标点,用作判断。
        char str1[500],ch;
        int i=0,j=0,k=0;
        fp=fopen("d:\\text.txt","r");
        if (fp == NULL)
        {
        printf("文件打开失败,请检查文件名及路径是否正确、文件是否存在");
        return 0;
        }
        ch=fgetc(fp);
        while(ch!=EOF)
        {
            str1[i]=ch;
            i++;
            ch=fgetc(fp);
        }
        str1[i]='\0';
        //前面这些是先将文件里的内容取出
        fclose(fp);
        p1=phead=create();
        for(j=0;j<i;j++)
        {
            
            if((str1[j]==s1[0]&&str1[j+1]==s1[1])||(str1[j]==s2[0]&&str1[j+1]==s2[1]))
            //中文是2个字节,所以比较的时候要同时比较两个字节是否相同,如果相同就是标点符号
            {
                p1->str[k]='\0';
                k=0;
                j+=1;   //因为是标点,所以这里要跳过标点的字节,不然后面读进去的就是乱码
                p2=p1;
                p1=create();
                p2->next=p1;
            }
            else
            {
                p1->str[k]=str1[j];   
                k++;
            }
        }
        free(p1);//释放最后一个开辟的空间
        p2->next=NULL;//尾结点指向NULL
        p2=p1=phead;
        if(p1!=NULL)
        {
            while(p1!=NULL)
            {
                printf("%s\n",p1->str);
                p1=p1->next;
                free(p2);  //将已输出的结构体释放
                p2=p1;
            }
        }
          return 0;  
}  
多发一份你作为参考吧。
2016-06-19 23:35
快速回复:求助 从txt中读取一篇文章存储到链表中,如何使读取的文章遇到遇到, ...
数据加载中...
 
   



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

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