当前位置:首页 » 编程语言 » c语言从文件查找字符串

c语言从文件查找字符串

发布时间: 2022-09-05 21:47:14

A. c语言在文本中查找字符串

第一空填:argv[1] //文件名以字符指针的形式存在argv[1]中
第二空填:fscanf(fp,"%s\n",str); //读取一行的字符串,存到str这个字符数组中去
第三空填:fclose(fp); //关闭文件

B. C语言怎么从文件中查找字符串并打印

#include <stdio.h>
#include <stdlib.h>
void File()
{
FILE *in, *out;
char ch ;
if ((in = fopen("d:\\wenjian\\in.txt","r")) == NULL) //in.txt 和out.txt 都在当前工作目录下存放
{
printf("canot find the file!\n");
exit(0);
}

if ((out = fopen("d:\\wenjian\\out.txt","w"))==NULL) // 写入数据的文件
{
printf("canot find the out.txt file !\n");
exit(0);
}

ch = fgetc(in);
while (ch!=EOF)
{
fputc(ch,out);
putchar(ch); //是in.txt 的内容显示在dos窗口 下
ch = fgetc(in);
}
fclose(in); // 关闭文件
fclose(out);
}

int main()
{
File() ;
puts("");
return 0;
}
我写的代码参考下。

C. C语言中如何查找字符串

用strstr这个函数

包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。

源代码:

#include<stdio.h>
#include<string.h>//调用string.h中的strstr函数
void main(){
char ch1[255]="abcde";
char ch2[100]="cd";
char* ch;//用于接受返回值
if((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串
printf("-1\n");
}else{//说明找到了那个字符串
printf("%d\n",ch-ch1+1);//cde的地址减去abcde的地址+1
}
}

D. C语言如何从文件中查找指定的字符,然后替换它

这个很简单呢,你只要去循环比对
/*检查data字符串,是否samplestr的一个子串,samplestr的各个字串以|分隔*/
int
CheckStrIn(char
*data,char
*samplstr)
{
int
i,ilen,icount;
char
*sp;
sp=samplstr;
ilen=strlen(samplstr);
for(i=0,icount=1;i<ilen;i++,sp++)
{
if(*sp=='|')
icount++;
}
ilen=strlen(data);
for(i=0;i<icount;i++)
{
if(memcmp(data,searchsplit(samplstr,i),ilen)==0)
return
1;
}
return
0;
}
如果是则替换掉

E. c语言字符串的查找用什么函数

用strstr这个函数
包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。

F. 在C语言里在一个文件里搜索一个字符串并进行修改

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void Substitute(char *pInput, char *pOutput, char *pSrc, char *pDst)
{
char *pi, *po, *p;
int nSrcLen, nDstLen, nLen;
// 指向输入字符串的游动指针.
pi = pInput;
// 指向输出字符串的游动指针.
po = pOutput;
// 计算被替换串和替换串的长度.
nSrcLen = strlen(pSrc);
nDstLen = strlen(pDst);
// 查找pi指向字符串中第一次出现替换串的位置,并返回指针(找不到则返回null).
p = strstr(pi, pSrc);
if(p)
{
// 找到.
while(p)
{
//计算被替换串前边字符串的长度.
nLen = (int)(p - pi);
// 复制到输出字符串.
memcpy(po, pi, nLen);
memcpy(po + nLen, pDst, nDstLen);
// 跳过被替换串.
pi = p + nSrcLen;
// 调整指向输出串的指针位置.
po = po + nLen + nDstLen;
// 继续查找.
p = strstr(pi, pSrc);
}
// 复制剩余字符串.
strcpy(po, pi);
}
else
{
// 没有找到则原样复制.
strcpy(po, pi);
}
}
int main(int ac, char *av[])
{
if (ac!=5) {
printf("程序名 要操作的文件 新文件 查找的字符串 替换的字符串\n");
printf("示例:test.exe 1.txt 2.txt hello love\n");
return 0;
}
const int MAXSIZES = 100;
FILE *fpSrc,*fpDes;
char filename1[20]="1.txt";
char filename2[20]="2.txt";
//要求查找的字符串,替换的字符串;
char ps[]="hello";
char pd[]="love";
//求取所查找和替换的字符串的长度;
int len_src=strlen(av[3]);
int len_des=strlen(av[4]);
//定义存储字符串缓冲区;很奇怪的一点是,fgets函数不能将字符串写入动态分配的内存中
/*char* Src_buf=(char*)(sizeof(char)*MAXSIZES);
char* Cpy_buf=(char*)(sizeof(char)*MAXSIZES);
char* Des_buf=(char*)(sizeof(char)*MAXSIZES);*/
char Src_buf[MAXSIZES] = {0};
char Cpy_buf[MAXSIZES] = {0};
char Des_buf[MAXSIZES] = {0};
//打开文件
if((fpSrc=fopen(av[1],"r+"))==NULL)
{
printf("fail to open the file1 !\n");
exit(1);
}
if((fpDes=fopen(av[2],"a+"))==NULL)
{
printf("fail to open the file2 !\n");
exit(1);
}
//进行循环读取
while(!feof(fpSrc))//判断文件是否已结束;!feof(fpSrc)
{
fgets(Src_buf,MAXSIZES,fpSrc);
Substitute(Src_buf,Des_buf,av[3],av[4]);
fputs(Des_buf,fpDes);
printf("%s",Des_buf);
}
fclose(fpSrc);
fclose(fpDes);
system("pause");
return 0;
}

G. C语言程序 如何从文件中查找特定的字符

1、打开文件,遍历文件内容然后一个一个匹配查找并替换,最后再重新写入文件当中。
2、例程:
#include
int main()
{
file *fp;
char filename[100];
printf("请输入文件名:\n");
gets(filename);
fp=fopen(filename,"r");
char c,x,flag=0;
printf("请输入要查找的字符:\n");
scanf("%c",&x);
while(fscanf(fp,"%c",&c)!=eof)
{
if(c==x)
{
flag=1;
break;
}
}
if(flag==1)
printf("文件中含有字符%c\n",x);
else
printf("文件中没有字符%c\n",x);
return 0;
}

H. c语言查找字符串

字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,c语言查找字符串方法为:

1、首先,定义一个字符数组变量,可以这么写。

注意事项:

尽管形式字符串可以有任意(但有限)的长度,实际语言的字符串的长度经常被限制到一个人工极大值。有两种类型的字符串数据类型: “定长字符串”,它有固定的极大长度并且不管是否达到了这个极大值都使用同样数量的内存。

I. 麻烦谁帮我解释下 C语言程序 关于文件查找特殊字符串

#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
//三个头文件,分别表示标准化io,标准化库文件,字符串类文件的头文件
int
main()
{
int
line=0;//记录行数
FILE
*fp;//定义文件指针
char
FILENAME[100],li[256],indata[255],*sust=NULL;//
printf("Input
file
name
please:");
gets(FILENAME);//获取文件名
if
((fp=fopen(FILENAME,"r"))!=NULL){//如果读取成功,即fopen函数返回值不为空
printf("Input
a
string
please:");
gets(indata);//输入要寻找的那个字符串
while
(!feof(fp))//当文件未结束一直执行该操作
{
line++;//行计数加一
fgets(li,255,fp);//读取255个字符
sust=strstr(li,indata);//从字符串li中寻找indata第一次出现的位置(不比较结束符NULL)。参看//http://ke..com/view/745156.htm?fr=ala0
if
(sust!=NULL)
{//如果未找到
printf("Found
it
in
line
%d\n",line);
}
}
fclose(fp);//关闭文件
}
else
puts("File
not
found!");//文件未找到
return
0;
}

J. c语言从文件中查找字符串

不用自己写,有一个函数叫strstr,原型是
char
*strstr(char
*str1,
char
*str2),功能是找出str2字符串在str1字符串中第一次出现的位置。
可以这样写:
char
*p=strstr(a,b);
if(null
!=
p)
{
//a中不存在b,添加相应代码
}
else
{
//a中存在b,添加相应代码
}
返回值p为a中第一次出现b的位置
这个函数要包含头文件string.h

热点内容
诺基亚密码忘了打什么电话 发布:2024-09-17 03:27:09 浏览:555
树深度优先算法 发布:2024-09-17 03:26:58 浏览:472
跳转页源码 发布:2024-09-17 03:13:05 浏览:543
html文件上传表单 发布:2024-09-17 03:08:02 浏览:784
聊天软件编程 发布:2024-09-17 03:00:07 浏览:726
linuxoracle安装路径 发布:2024-09-17 01:57:29 浏览:688
两个安卓手机照片怎么同步 发布:2024-09-17 01:51:53 浏览:207
cf编译后没有黑框跳出来 发布:2024-09-17 01:46:54 浏览:249
安卓怎么禁用应用读取列表 发布:2024-09-17 01:46:45 浏览:524
win10设密码在哪里 发布:2024-09-17 01:33:32 浏览:662