1. c語言編程中如何將一個文件中的信息轉入到另一個文件
打開兩個文件,從一個文件讀數據,寫入到另一個文件,例如:
//---------------------------------------------------------------------------
#include <stdio.h>
int main(void)
{
FILE *fp1,*fp2;
char c;
fp1=fopen("dat.txt","r"); /*打開源文件*/
fp2=fopen("tot.txt","w"); /*打開將寫入的文件*/
while ((c=fgetc(fp1))!=EOF) /*將源文件fp1的內容轉存(復制)到目標文件fp2中*/
fputc(c,fp2);
fclose(fp1); /*關閉文件*/
fclose(fp2);
return 0;
}
//---------------------------------------------------------------------------
2. C語言將.exe中數據復制到其他文件中
第一個問題是肯定可以的,因為不管什麼文件,它在機器中存儲的都是一堆二進制串,可以讀取出來再復制。但是第二個問題就不是了,因為編譯過的代碼會加入很多其它的內容,具體是什麼我也不知道。如果說exe的數據與它的代碼一致的話,那任何程序不就可以直接來看它的源碼了?
3. 關於c語言中字元串的復制
標准C語言中有對字元串的支持啊,字元串的復制可以用函數 strcpy()。
原型:char *strcpy(char *dest, char *src);
功能:把src所指由'\0'結束的字元串復制到dest所指的數組中。
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。
返回指向dest的指針。
如果不知道str長度,可以先測試下其長度,給要復制的字元串一個長度參考
4. C語言如何直接將數據復制到運行的程序中,而不是我一個個手打
採用文件讀取。
你可以這樣
#include《......》
int main(void)
{
freopen("shu_ru.txt", "r", stdin);//這個書數據輸入的來源,shu_ru.txt是你文件的地方,
freopen("shu_chu。txt", "w", stdout);//輸出到什麼地方。shu_chu是輸出到什麼地方
//shu_ru.txt要寫路徑,比如 c:/profile/桌面/shu_ru.txt 這種形式的。
//輸出也是一樣
.......
retuen 0;
}
5. 用C語言編寫一個程序,將一個數組中的元素復制到另一個數組中
#include <stdio.h>
int main()
{
int i, array1[5], array2[5];
printf("請輸入第一個數組:");
for(i=0; i<5; i++)
scanf("%d", &array1[i]);
printf("\n第二個數組:");
for(i=0; i<5; i++)
{
array2[i] = array1[i];
printf("%d ", array2[i]);
}
return 0;
}
6. c語言如何實現結構體的深度復制
使用memcpy即可, 比如你另外建立一個結構體sortbook[1000]用來保存排序結果,將book中的第i個元素賦值到sortbook的第j個元素中
memcpy(&sortbook[j], &book[i], sizeof(struct book));
用這個函數需要#include <string.h>
函數原型
void *memcpy(void*dest, const void *src, size_t n);
功能
由src指向地址為起始地址的連續n個位元組的數據復制到以destin指向地址為起始地址的空間內。
頭文件
#include<string.h>
返回值
函數返回一個指向dest的指針。
說明
1.source和destin所指內存區域不能重疊,函數返回指向destin的指針。
2.與strcpy相比,memcpy並不是遇到'\0'就結束,而是一定會拷貝完n個位元組。
memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;
例:
char a[100], b[50];
memcpy(b, a,sizeof(b)); //注意如用sizeof(a),會造成b的內存地址溢出。
strcpy就只能拷貝字元串了,它遇到'\0'就結束拷貝;例:
char a[100], b[50];
strcpy(a,b);
3.如果目標數組destin本身已有數據,執行memcpy()後,將覆蓋原有數據(最多覆蓋n)。如果要追加數據,則每次執行memcpy後,要將目標數組地址增加到你要追加數據的地址。
//注意,source和destin都不一定是數組,任意的可讀寫的空間均可。
7. C語言,怎麼把一個指針的內容復制到另一個指針
strcpy(nam,p1->name);
p2->grade=grade;
strcpy(p2->name,nam);
strcat 是連接兩個字元串的,如果多連接幾個, nam就會溢出數組了……
strcpy 才是拷貝字元串的正確函數。