0

晚上每个人都希望你们大师能提供帮助。我试图找到这个问题的答案,我需要通过搜索标签从下面的字符串中读取数据。即 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 作为示例,谢谢到目前为止 :-)

4

1 回答 1

2
  1. strstr() 绝对是搜索子字符串的正确方法。凉爽的 :)

  2. 听起来您想要与“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"
于 2012-07-21T21:57:59.597 回答