| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 940 人关注过本帖
标题:字符串连接
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不用你写的那么复杂的,不需要用到数组,更不需要用二维数组。运行不出来,多数是你用了C编译器,我那代码又没什么高深的语句,都是很基本的函数(fopen_s()函数不熟悉可以用回fopen(),打开的文件指针是一样的)。

授人以渔,不授人以鱼。
2015-01-11 21:12
ZMX900507
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2015-1-8
收藏
得分:0 
回复 11楼 TonyDeng
是的我用的是C编译器!用什么编译器才可以运行你的程序呢? 不懂啊!
2015-01-11 21:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把文件扩展名改回.cpp就可以了。如果不改的话,把变量的声明移到函数开头处。

授人以渔,不授人以鱼。
2015-01-11 21:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
首先你要搞明白自己要做什么,有什么实现的途径。像这种直接向文件输出的需求,就不存在拼接字符串的问题,先向目标文件写出从1.txt读入的一行,然后马上接着再写出从2.txt读入的一行,那么在目标文件上就已经把两行连接成一行了,不用搞什么动态分配内存、字符串连接之类的东西,再简单不过。关键处,是要懂得把文件指针用rewind()复位到文件开头。你看,我只用两个字符串就解决问题了,用1024字节,不过是照顾你真实的数据可能很长罢了。整个代码没什么难理解的,别人看得懂的,也可以给你解释一下,我要出门了,没时间详述。

授人以渔,不授人以鱼。
2015-01-11 21:27
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
程序代码:
#include <stdio.h>

int wF1(FILE *fpN, FILE *fp) {
    char c;

    while((c = fgetc(fp)) != '\n') {
        if(c == EOF) return 0;
        fputc(c, fpN);
    }

    return 1;
}

int wF2(FILE *fpN, FILE *fp) {
    char c;

    while((c = fgetc(fp)) != EOF) {
        fputc(c, fpN);
        if(c == '\n') {
            return 1;
            break;
        }
    }

    if(c == EOF) fprintf(fpN, "\n");

    return 0;
}

int main(void) {
    int flag = 1;
    FILE *fp1 = fopen("1.txt", "r");
    FILE *fp2 = fopen("2.txt", "r");
    FILE *fpN = fopen("new.txt", "w+");

    if(!fp1 || !fp2 || !fpN) return 1;

    while(flag) {
        flag = wF1(fpN, fp1);
        while(wF2(fpN, fp2)) {
            if(!feof(fp1)) fseek(fp1, -6L, 1);
            else fseek(fp1, -4L, 1);
            wF1(fpN, fp1);
        }
        rewind(fp2);
    }

    fclose(fp1);
    fclose(fp2);
    fclose(fpN);

    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-01-11 21:42
ZMX900507
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2015-1-8
收藏
得分:0 
回复 15楼 longwu9t
谢谢!
2015-01-15 16:18
快速回复:字符串连接
数据加载中...
 
   



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

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