⑴ c語言如何將文件截斷一半
截斷一個數組的一部分相當於取得一個數組的某一個子集數組。
如果是字元數組,可以使用strncpy函數,根據需要截取需要部分。
strncpy 是 C語言的庫函數之一,來自 C語言標准庫,定義於 string.h,char *strncpy(char *dest, char *src, int n),把src所指字元串的前n個位元組復制到dest所指的數組中,並返回指向dest的指針。
如果是普通數組,使用循環語句,將需要的部分一一賦值即可。
例如:
#include<stdio.h>
inta[10]={0,1,2,3,4,5,6,7,8,9};//源數組a
intb[10],i;//子集數組b
intmain(){
for(i=5;i<10;i++)b[i-5]=a[i];//獲得a數組中第6個到第10個數,儲存到b當中
return0;
}
⑵ c語言怎麼提取文本文件中我想要的一些信息
使用文件操作函數fscanf即可提取文本當中特定的信息。例如要提取一個整數,可以用fscanf(fp,"%d",&n);要提取一個字元串可以用fscanf(fp,"%s",s),其中fp為文件指針。
1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。
2、常式:
#include<stdio.h>
inta;
charb,c[100];
intmain(){
FILE*fp1=fopen("input.txt","r");//打開輸入文件
FILE*fp2=fopen("output.txt","w");//打開輸出文件
if(fp1==NULL||fp2==NULL){//若打開文件失敗則退出
puts("不能打開文件!");
return0;
}
fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
b=fgetc(fp1);//從輸入文件讀取一個字元
fgets(c,100,fp1);//從輸入文件讀取一行字元串
printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數
fputs(c,fp2);//向輸出文件寫入一行字元串
fputc(b,fp2);//向輸出文件寫入一個字元
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return0;
}
⑶ c語言怎麼截取文本文件的指定欄位
先把a.txt里的數據讀到一個字元串string里,然後用一個函數(find)去找字元『#』,然後用方法delete刪掉,或是用空格替代。然後再把處理過的字元串重新寫到b.txt中
⑷ c語言中怎麼截取中間的字元
可以用memcpy(),如下面代碼:
char
*s="abcdefg";
char
str[4]={0};
我們要截取"def"則可以這樣:
memcpy(str,s+3,3);
用法就是memcpy(緩沖區,字元串第n個元素,截取長度m);
⑸ C語言文件操作,把一個文件裡面部分的信息提取到另一個文件
錯了!類似a[i]=fgetc(f1)!='\0'這樣的表達式都達不到你的目的。因為!=的優先順序比=高,所以會被編譯器解釋成a[i]=(fgetc(f1)!='\0')而不是你想像(a[i]=fgetc(f1))!='\0'。得先把這一錯誤改了再說。
⑹ C語言 在知道兩段字元串的情況下截取中間的字元串
先用strcat拼接好兩個子串,然後再用left方式截取。
C語言中拼接字元串可以使用strcat函數。
1、strcat()函數 ,即string catenate的縮寫
原型:extern char *strcat(char *dest,char *src);
用法:#include <string.h>
功能:把src所指字元串添加到dest結尾處(覆蓋dest結尾處的'\0')並添加'\0'。
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。
返回指向dest的指針。
2、舉例:
#include <stdio.h>
#include <string.h>
int main(){
char d[20]="字元串1"; //第一個字元串
char *s=" 字元串2"; //第二個字元串
strcat(d,s); //拼接兩個字元串,結果保存在第一個字元串當中
printf("%s",d); //輸出拼接結果:"字元串1字元串2"
getchar();
return 0;
}
3、c語言截取字元串方法:
#include <stdio.h>
#include <string.h>
/*從字元串的左邊截取n個字元*/
char * left(char *dst,char *src, int n)
{
char *p = src;
char *q = dst;
int len = strlen(src);
if(n>len) n = len;
/*p += (len-n);*/ /*從右邊第n個字元開始*/
while(n--) *(q++) = *(p++);
*(q++)='\0'; /*有必要嗎?很有必要*/
return dst;
}
⑺ C語言如何讀取文件中指定的某一段
#include<stdio.h>
#include<string.h>
#define TBEGIN "B"
#define TEND "END B"
void main() { FILE *fp; char buffer[256];
if ( fp=fopen("c:\test.txt","r") ) {
while ( !feof(fp) ) { fgets(buffer,255,fp); if ( strcmp(buffer,TBEGIN)==0 ) break; }
while ( !feof(fp) ) {
fgets(buffer,255,fp); if ( strcmp(buffer,TEND)==0 ) break; else printf("%s ",buffer);
}
fclose(fp);
} else printf("無法打開文本文件. ");
}
⑻ C語言如何從龐大的數據中截取一部分並另存
這個當然沒問題了。
讀取時,讀取方式可以按照1個字元,也可以按照預先定義好的結構體(可以是地震數據結構),
然後可以用for循環,定量的讀取n個字元或結構體。
也可以使用函數如fseek定位函數,具體參見http://wenku..com/view/60057321af45b307e8719768.html
這樣一般是按照結構體來讀取和寫入的。(不過需要對讀取的數據進行結構體轉存操作,然後寫入文件)
這樣讀取就可以按照結構體來讀取了。
⑼ c語言 如何讀取文件中間段內容
對於fseek():SEEK_SET設定指針指向開始位置,最好再加一個跟隨定位的,上面加個for循環,裡面的變數,(position-1)*sizeof(struct book)*i ,這樣不就往後面走了,具體你要什麼也好辦,讀到第幾條數據這樣就可以確定了。我以前寫過這個,好久不用這個了,只能給你提供以下思路,希望對你有用