c語言克隆
A. c語言中如何復制數組的內容
C語言中復制數組的內容源代碼如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 10
void show_array(const int ar[], int n);
int main()
{
int values[SIZE] = {1,2,3,4,5,6,7,8,9,10};
int target[SIZE];
double curious[SIZE / 2] =
{2.0, 2.0e5, 2.0e10, 2.0e20, 5.0e30};
puts("memcpy() used:");
puts("values (original data): ");
show_array(values, SIZE);
memcpy(target, values, SIZE * sizeof(int));
puts("target ( of values):");
show_array(target, SIZE);
puts("
Using memmove() with overlapping ranges:");
memmove(values + 2, values, 5 * sizeof(int));
puts("values -- elements 0-5 copied to 2-7:");
show_array(values, SIZE);
puts("
Using memcpy() to double to int:");
memcpy(target, curious, (SIZE / 2) * sizeof(double));
puts("target -- 5 doubles into 10 int positions:");
show_array(target, SIZE/2);
show_array(target + 5, SIZE/2);
system("pause");
return 0;
}
void show_array(const int ar[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", ar[i]);
putchar('
');
}
(1)c語言克隆擴展閱讀
1、C語言編程中,將常用的操作封裝成函數進行調用,可以大大簡化程序的編寫,而且在代碼的維護性及可讀性方面也提供了便利。
2、不同地方需要對處理後的數組內容多次進行顯示,並且很多情況下並非顯示數組裡面的全部內容,而僅僅是想觀察數組中的部分數據內容,若每次顯示時都用printf函數寫的話,可以寫一個自定義的通用函數,用來根據需要顯示數組中的內容。
B. c語言中,把一個變數的內容復制到另一個變數怎麼做
非字元串類型使用=賦值。
字元串類型使用STRCPY函數
C. C語言---如何復制任意文件
C語言復制文件主要由三種辦法,你可以根據自己的知識選用一個
方法1)利內用C語言的二進制讀寫容函數
自己用fopen打開源文件和目標文件,然後用循環讀寫實現復制
方法2)利用操作系統的文件復制函數
例如Windows就有如下API函數可以復制文件
BOOL CopyFile(
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists // operation if file exists
);
第一個參數是用來存放當前要處理文件的路徑。
第二個參數是用來存放用戶指定的新路徑。
第三個參數它是用來判斷用戶指定的新路徑是否已經存在要存放的路徑,如果為TRUE,則新路徑中已經存在該文件了,該函數調用失敗,否則就調用成功。
方法3:C語言調用操作系統的命令
首先#include<stdlib.h>
然後 程序中 調用 system(「這里寫 的完整命令」);
D. c語言 復制數組
strcpy(t[i],a[j],n);該語句的意思是:將某已知二維數組a的第j行前n個字元復制到另一個二維數組t的第i行中。給分吧
E. C語言怎樣實現自我復制
#include "Windows.h" //以下函數得包含此頭文件int main(){
char szPath[MAX_PATH]; //保存自身文件名的字元串
char toPath[MAX_PATH] = "C:"; //要復制到的路徑字元串
int i;
GetMoleFileNameA(NULL,(LPCH)szPath,225); //獲取自身路徑的函數 for (i = strlen(szPath); i > 0; i--) //獲取文件名的處理,就我所知,VC沒有獲取文件名的函數,要自己處理;BCB就有
{
if (szPath[i] == '\\') //最後一個『\』後面就是文件名
break;
}
strcat(toPath,&szPath[i]); //把文件名連接到toPath,得到「C:\*.exe」
for (char ch = 'c'; ch <= 'f'; ch++) //復制處理,從c到f
{
toPath[0] = ch; //改盤符
CopyFileA(szPath,toPath,false); //復制函數,從szPath復制到toPath,強行覆蓋原有文件
}
return 0;
}
F. 關於c語言中字元串的復制
標准C語言中有對字元串的支持啊,字元串的復制可以用函數 strcpy()。
原型:char *strcpy(char *dest, char *src);
功能:把src所指由'\0'結束的字元串復制到dest所指的數組中。
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。
返回指向dest的指針。
如果不知道str長度,可以先測試下其長度,給要復制的字元串一個長度參考
G. 如何實現C語言中復制文件的程序
1 以只讀方式打開第一抄個文件
2 以寫方式打開第二個文件
3 循環讀取字元,並寫入第二個文件。直到遇到EOF結束。
4 關閉文件。
代碼:
#include<stdio.h>
intmain()
{
FILE*f1,*f2;
intc;
f1=fopen("in.txt","rb");
f2=fopen("out.txt","wb");//將in.txt復制為out.txt;
while((c=fgetc(f1))!=EOF)
fputc(c,f2);
fcloseall();
return0;
}
H. C語言,如何復制文件
調用系統函數是以字元串方式保存的,而非二進制。(因為dos\linux命令行下二進制編碼無意義)回
所以system()一定答不滿足你的要求。
可以使用c的IO函數達到你想要的目的
以下是簡要說明,不考慮出錯等問題:
所有IO函數包含在stdio.h中(linuxC是,turboc應該也是吧,忘了)
1、定義源文件和目標文件指針FILE *fp_source,*fp_target
2、聲明一個程序內數據存放區如char buffer[100],或調用malloc函數
3、用fp_source = fopen()打開源文件文件
4、用fp_target = fopen()打開目標文件
5、
while(feof(fp_source) == 0)//利用循環復制直到源文件尾
{用fread()將源文件內容讀入程序buffer
用fwrite()將buffer內容寫入目標文件
}
6、別忘了close()關閉源\目標文件
7、各函數使用方法請自行查詢,不贅述。
沒有寫全源碼,但希望這條思路對你有幫助。
I. C語言如何復制數組
int (double *a,double *b,double *c,int n)//a是輸入數組
{
int i;
for(i=0;i<n;i++)
{
b[i]=a[i];
*(c+i)=*(a+i);
}
}
直接手敲的,手上沒C,供參考。