合并数组的 *** 作,具体算法依赖于合并的规则。
其通用流程如下:
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语言怎么把文件中的两行合并成一行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)