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()」とは別の何かで部分文字列をコピーしたいようです。

Q:代わりに「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 に答える