晚上大家都希望你们大师可以提供帮助。我试图找到这个问题的答案,我需要通过搜索标签来读取下面字符串中的数据。即IZTAG UKPART等,但我使用的代码并不好,因为它只存储它的第一部分,例如UKPART = 12999并且错过了-0112。有没有更好的方法来搜索字符串?
更新。
#include <stdio.h>
#include <string.h>
#include <windows.h>
int main ()
{
// in my application this comes from the handle and readfile
char buffer[255]="TEST999.UKPART=12999-0112...ISUE-125" ;
//
int i;
int codes[256];
char *pos = buffer;
size_t current = 0;
//
char buffer2[255];
if ((pos=strstr(pos, "UKPART")) != NULL) {
strcpy (buffer2, pos); // buffer2 <= "UKPART=12999-0112...ISUE-125"
}
printf("%s\n", buffer2);
system("pause");
return 0;
}
现在工作但是返回整个输出线作为输出我需要返回UKPART例如,所以: - )
答案 0 :(得分:2)
strstr()绝对是搜索子字符串的正确方法。酷:))
听起来你想要一些与“sscanf()”不同的东西来复制子串。
问:为什么不直接使用“strcpy()”?
EXAMPLE:
char buffer[255]="IZTAG-12345...UKPART=12999-0112...ISUE-125" ;
char buffer2[255];
if ((pos=strstr(pos, "UKPART")) != NULL) {
strcpy (buffer2, pos); // buffer2 <= "UKPART=12999-0112...ISUE-125"