使用C从字符串中获取某些部分

时间:2012-07-21 21:54:03

标签: string search

晚上大家都希望你们大师可以提供帮助。我试图找到这个问题的答案,我需要通过搜索标签来读取下面字符串中的数据。即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例如,所以: - )

1 个答案:

答案 0 :(得分:2)

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

  2. 听起来你想要一些与“sscanf()”不同的东西来复制子串。

  3. 问:为什么不直接使用“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"