我已经阅读了所需文件中的所有文本,现在它存储在buff
中。我想复制标识符字符串(如“标题”)后的字符串内容。从C中的文本文件复制所需的字符串
示例如下文件:
"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()
也许?
fgets应该切换第一个和最后一个参数。我喜欢这个主意,我会尝试一下 – pproctor
@pproctor哎呀!感谢您指出。纠正。 –