gpt4 book ai didi

从 C 中的文本文件复制所需的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:57 27 4
gpt4 key购买 nike

我已经读取了所需文件中的所有文本,它现在存储在 buff 中。我只想复制标识符字符串(例如“标题”)之后的字符串内容。

示例文件如下:

"Title: I$_D$-V$_{DS}$ Characteristic Curves (Device 1)
MDate: 2016-03-01
XLabel: Drain voltage V$_{DS}$
YLabel: Drain current I$_D$
CLabel: V$_{GS}$
XUnit: V
... "

for(;;) {
size_t n = fread(buff, 1 , DATAHOLD, inFile);

subString = strstr( buff, "Title");

if( subString != NULL) {
strcpy(graph1.title , (subString + 7));
subString = NULL;
}

....more if statements....

if( n < DATAHOLD) {
break;
}
}

我知道 strstr() 返回一个指向搜索字符串位置的指针,我添加了 7 以获取搜索字符串和这部分之后的文本工作正常。问题是 strcpy() 将剩余的 buff 字符数组复制到 graph1.title 中。如何指示strcpy() 只复制与substring 指针在同一行的文本?也许使用 strtok()

最佳答案

我同意 ChuckCottrill , 如果一次读取和处理一行会更好。

此外,由于您正在处理的文件是文本文件,因此您可以在文本模式下打开它。

FILE *fin = fopen("filename", "r");

fgets()读取一行到字符串str。需要注意的是,fgets() 会将尾部的\n' 带到str

fgets(str, sizeof(str), fin);

char *substring;
if( (substring = strstr(str, "Title: ")) != NULL )
{
strcpy(graph1.title, substring+strlen("Title: "));
}

此时,graph1.title 中将包含I$_D$-V$_{DS}$ Characteristic Curves (Device 1)

关于从 C 中的文本文件复制所需的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45646752/

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