⑴ 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 ,这样不就往后面走了,具体你要什么也好办,读到第几条数据这样就可以确定了。我以前写过这个,好久不用这个了,只能给你提供以下思路,希望对你有用