同C语言合并两个数组

同C语言合并两个数组,第1张

合并数组的 *** 作,具体算法依赖于合并的规则。

其通用流程如下:

1 建立一个足够容纳两个数组所有元素的目标数组。如果规则规定将一个数组合并到另一个之中,那么需要保证目标数组有可以容纳两个数组的空间,否则会出现越界。

2 遍历其中一个数组,并赋值到目标数组中。如果是一个数组合并到另一个,那么此步可以省略;

3 遍历另一个数组,按照规则插入到目标数组中。

在不同规则下,合并算法会有差异,如将长为lb的B数组附加到长为la的A数组结尾的 *** 作,可以写作

int i;

for(i = 0; i < lb; i ++)

    A[la+i]=B[i];

而将长度均为l的数组A,B,交替合并到C中,可以写作

int i;

for(i = 0; i < l; i ++)

{

    C[i2] = A[i];

    C[i2+1] = B[i];

}

不管是何种方式,合并的本质就是,把A和B的每个元素,赋值到目标数组的对应位置上即可。

资源选项卡,插入对话框,拖控件。两个静态文本:用户名、密码。两个文本框:用户名,密码(属性卡里style选择 密码,输入的密码会显示),两个按钮 确定、取消。

2给此对话框添加类CLOGIN

3在类的Cpp文件里添加代码

//动画显示登录奥~

#define AW_CENTER 0x00000010 //动画#define AW_HIDE 0x00010000 //隐藏

BOOL CLOGIN::OnInitDialog()

{

CDialog::OnInitDialog();

//如果用到数据库判断用户名和密码的话这里要添加打开数据库,比对用户名和密码的代码

//不连接数据库的话 用IF Else判断用户名密码是不是对就行

//动画显示登录框

CenterWindow();

DWORD dwStyle = AW_CENTER;

HINSTANCE hInst = LoadLibrary("User32DLL");

typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));

MYFUNC AnimateWindow;

AnimateWindow=(MYFUNC )::GetProcAddress(hInst,"AnimateWindow");

AnimateWindow(this->m_hWnd,1000,dwStyle);

FreeLibrary(hInst);

return TRUE;

}

不用MFC方法的话,你的对话框 控件啥的都得动态添加,用代码实现,那样太折腾了

使用文件 *** 作函数打开文件,读取信息,重新写入并覆盖原文件,写的时候当遇到需要合并的两行时,忽略两之间的换行符。

例程:

#include <stdioh>

#include <stdlibh>

#define K 5    //合并第六行第七行

FILE p;//文件指针

int i,j;

char a[1000][1000];

int main(){

    p = fopen("文件名称", "r");//第一个字符串是你文件路径,路径中的\要写成\\,文件名必须带后缀

    for(i=0;fgets(s[i],1000,p)!=EOF;i++)//EOF为文件尾(end of file),读取文本中的数据  

    merge(); //合并 *** 作

    fclose(p);

    p = fopen("文件名称", "w");//以写入方式重新打开

    for(j=0;j<i;j++) {

      fprintf(p,s[j]);

      if(j!=K)fprintf(p,"\n"); //当不为合并行时,输出一个换行符

    }

    fclose(p)

    return 0;

}

其中一个程序调用另一个程序的方式,使用系统调用system可以。

如果两个程序要交换使用数据,可以用建立文件作为数据交换的“通道”。

如果你不知道这两个程序的代码,那么就新建一个可以调用这两个已知程序的程序吧

文件的合并要使用到FILE类型,以及文件的打开关闭,下面以文件和其它类型的文件进行合并为例,说说文件的合并:

#include

#include

void main()

{

FILE fp,ff,ftt;

char ch;

char fn1[20],fn2[20],ft[20];

printf("\t\t\t\t文件合成器\n");

printf("输入要合成的名称:");

scanf("%s",fn1);

printf("输入要合成的文件名称:");

scanf("%s",fn2);

printf("生成的名称:");

scanf("%s",ft);

if(!(fp=fopen(fn1,"rb")))//当不能打开文件的提示处理

{

printf("不能打开%s\n",fn1);

return;

}

if(!(ff=fopen(fn2,"rb")))

{

printf("不能打开文件%s",fn2);

return;

}

if(!(ftt=fopen(ft,"wb")))

{

printf("不能打开%s",ft);

return;

}

while(!(feof(fp) ))//写入文件

{

ch=fgetc(fp);

fputc(ch,ftt);

}

fclose(fp);

while(!(feof(ff)))//写入其它类型的文件

{

ch=fgetc(ff);

fputc(ch,ftt);

}

fclose(ff);

fclose(ftt);

system("pause");

}要注意了,这个例子涉及的文件均要在cpp文件的同一级目录,要是不在同一级目录则要输入文件的路径,合成的文件也在cpp文件的目录下。

以上就是关于同C语言合并两个数组全部的内容,包括:同C语言合并两个数组、c语言一个登录界面的代码和菜单界面的代码怎么合并、用C语言怎么把文件中的两行合并成一行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10110566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存