| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 940 人关注过本帖
标题:字符串连接
只看楼主 加入收藏
ZMX900507
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2015-1-8
结帖率:55.56%
收藏
 问题点数:0 回复次数:15 
字符串连接
现有连个文本文件1.txt和2.txt内容分别如下
1.txt:
0001
0002
2.txt :
00
01
想编程分别将1.txt文件中的两横字符分别与2.txt的两行字符连接 并存入新的文件中  
新生成的文件应为
000100
000101
000200
000201
编了好久都是错误的希望大神帮忙编译下简单代码

谢谢!
搜索更多相关主题的帖子: 文本文件 字符串 
2015-01-09 19:46
doudou74321
Rank: 2
等 级:论坛游民
帖 子:70
专家分:72
注 册:2014-11-5
收藏
得分:0 
库函数就能搞定啊。。。文本文件写入程序时注意转换为二进制。。用%d转换。。。自己多试试就会了,这个没啥难的。。。
2015-01-11 14:36
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
新生成的文件应为
000100
000101
000200
000201


你确定这是你要的结果 而不是

新生成的文件应为
000100
000201

Only the Code Tells the Truth             K.I.S.S
2015-01-11 16:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
他要做交叉乘法,不是什么连接。再说了,你们替他做的那个文件程序,也是绕了又绕,似乎根本不明白问题的本质是什么(其实在我看来,他的设计似乎反了),很简单的问题,复杂化了。

[ 本帖最后由 TonyDeng 于 2015-1-11 19:30 编辑 ]

授人以渔,不授人以鱼。
2015-01-11 19:14
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
回复 4楼 TonyDeng
我就是有点搞不清楼主的意图了 才有此一问

Only the Code Tells the Truth             K.I.S.S
2015-01-11 19:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这个也是很简单的。

授人以渔,不授人以鱼。
2015-01-11 19:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    const char* sourceFile1 = "1.txt";
    const char* sourceFile2 = "2.txt";
    const char* targetFile = "out.txt";

    FILE* source1;
    FILE* source2;
    FILE* target;

    fopen_s(&source1, sourceFile1, "rt");
    fopen_s(&source2, sourceFile2, "rt");
    fopen_s(&target, targetFile, "wt");

    char stringLine1[1024];
    char stringLine2[1024];
    while (fscanf_s(source1, "%s", stringLine1, _countof(stringLine1) - 1) == 1)
    {
        rewind(source2);
        while (fscanf_s(source2, "%s", stringLine2, _countof(stringLine2) - 1) == 1)
        {
            fprintf_s(target, "%s%s\n", stringLine1, stringLine2);
        }
    }

    fclose(source1);
    fclose(source2);
    fclose(target);

    return EXIT_SUCCESS;
}



授人以渔,不授人以鱼。
2015-01-11 19:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
他原先那个问题也一样,根本不需要把源文件的所有行都读完,只要读一行取得每行的长度,就可以了。事实上,这个设计的逻辑有点怪异,正常的似乎应是从目标文件获得指示去生成前面的文件,他说的是反过来。

[ 本帖最后由 TonyDeng 于 2015-1-11 19:52 编辑 ]

授人以渔,不授人以鱼。
2015-01-11 19:48
ZMX900507
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2015-1-8
收藏
得分:0 
回复 2楼 doudou74321
好的!谢谢 用了笨方法运行出来了
2015-01-11 21:01
ZMX900507
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2015-1-8
收藏
得分:0 
回复 7楼 TonyDeng
谢谢你!为什么我在vc6.0上运行不出来呢 总是显示错误
这是我编写的  笨方法  刚接触C指针那地方不太会用
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
void main()
{
    char str1[500][200],str2[500][200],str3[500][200];
    FILE *fp;
    int i,j,t,k,x;
    if ((fp = fopen("ha1.txt","r"))==NULL)/*将每个文本文件的内容赋给数组*/
        {
            printf("cannot open this file\n");
        }
    else
    {
        for(i=0;i<2;i++)
            for(j=0;j<3;j++)
                fscanf(fp,"%c",&str1[i][j]);
            fclose(fp);
    }
    /*for(i=0;i<2;i++)
    {
        for(j=0;j<2;j++)
            printf("%c",str1[i][j]);
            //printf("\n");
    }*/
    if ((fp = fopen("ha2.txt","r"))==NULL)/*将每个文本文件的内容赋给数组*/
        {
            printf("cannot open this file\n");
            //exit(0);
        }
    else
    {
        for(i=0;i<2;i++)
            for(j=0;j<3;j++)
                fscanf(fp,"%c",&str2[i][j]);
            fclose(fp);
    }
    /*for(i=0;i<2;i++)
    {
        for(j=0;j<2;j++)
            printf("%c",str2[i][j]);
            
    }*/
    //printf("\n");
    k=0;
    for(i=0;i<2;i++)
    {
        for(j=0;j<2;j++)
        {
            for(t=0;t<2;t++)
            {
                for(x=0;x<2;x++)
                    str3[k][x]=str1[i][x];
                str3[k][x+t]=str2[j][t];   
            }
            k++;
        }
    }
    printf("\n%d\n",k);
    for(i=0;i<k;i++)
    {
        for(j=0;j<4;j++)
            str1[i][j]=str3[i][j];
            //printf("%c",str3[i][j]);
        //printf("\n");
            
    }
    if ((fp = fopen("h.txt","w"))==NULL)
    {
        printf("the file can not open..");
    }
    else
    {
        for(i=0;i<k;i++)
        {
            for(j=0;j<4;j++)
                fprintf(fp,"%c",str1[i][j]);
            fputc('\n', fp);
        }
        fputc('\n', fp);
        fclose(fp);
    }
}
2015-01-11 21:04
快速回复:字符串连接
数据加载中...
 
   



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

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