gpt4 book ai didi

c - 在C中搜索多个单词,并在它们后面显示以逗号分隔的信息

转载 作者:行者123 更新时间:2023-11-30 17:55:41 25 4
gpt4 key购买 nike

假设我有一个 txt 文件:

日期:2011年11月11日

设备:Boxster

状态:良好

我正在尝试让我的代码搜索一个单词(Say Device:),并在该单词之后显示信息(Boxster)。到目前为止,我的代码只能搜索一个单词。我如何修复代码,以便它可以搜索 2 或 3 个单词,并在它们后面显示信息?

如果我能以以下格式显示信息,那就更有帮助了:

Boxster,2011 年 11 月 11 日,很好。

这是我的代码,提前致谢!

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {

char file[100];
char c[100];

printf ("Enter file name and directory:");
scanf ("%s",file);

FILE * fs = fopen (file, "r") ;
if ( fs == NULL )
{
puts ( "Cannot open source file" ) ;
exit( 1 ) ;
}

FILE * ft = fopen ( "book5.txt", "w" ) ;
if ( ft == NULL )
{
puts ( "Cannot open target file" ) ;
exit( 1 ) ;
}

while(!feof(fs)) {
char *Data;
char *Device;
char const * rc = fgets(c, 99, fs);

if(rc==NULL) { break; }

if((Data = strstr(rc, "Date:"))!= NULL)
printf(Data+7);

if((Data = strstr(rc, "Device:"))!=NULL)
printf(Device+6);
}

fclose ( fs ) ;
fclose ( ft ) ;

return 0;

}

最佳答案

注意 printf 和 fgets 的一些更改 您可以使用逻辑或 || 对子字符串进行多次检查。

尝试:

char rc[120]={0x0};
while(fgets(rc, sizeof(rc), fs)!=NULL) {
char *Data;
char *Device;

if((Data = strstr(rc, "Date:"))!= NULL)
printf("%s\n", &Data[7]);

if((Device = strstr(rc, "Device:"))!=NULL ||
(Device = strstr(rc, "String:"))!=NULL ||
(Device = strstr(rc, "foo:"))!=NULL )
printf("%s\n", &Device[6]);
}

当您了解有关搜索的更多信息时,如果您的系统支持 C 语言的正则表达式,您也许能够实现正则表达式进行搜索。

关于c - 在C中搜索多个单词,并在它们后面显示以逗号分隔的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com