1

Cで文字列を検索する方法を知っています。forループを使用してからstrstr関数を使用して、オカレンスがあるかどうかを判断します。しかし、今は検索したい整数よりも整数があります。私はインターネットでいくつかの例を見つけましたが、それらはすべて正確な数を検索しますが、私は望んでいません。「20」のように検索する必要があります。「2010」という数字がある場合は、それが表示されます。

どうすればcでそれを行うことができますか?

4

2 に答える 2

2

たぶん私は要点を見逃しています...しかし、なぜstrstrを使い続けないのですか?

int main(){
   char tmpbookyear [] = "this year is 2010";
   char searchCriteria [] = "20";
   char *result;

   if((result = strstr (tmpbookyear, searchCriteria)) != NULL)
       printf ("Returned String: %s\n", result);
   else
       printf("GOT A NULL\n");
}

mike@linux-4puc:~> gcc test.c
mike@linux-4puc:~> ./a.out 
Returned String: 2010

I need to search like "20" and if there is a number "2010" it should display it. それはあなたがそれを正しくしたいことですか?

編集:

char year[] = "2012"; 
char search[] = "2";
if(strstr(year, search) != NULL) 
    { printf("result is %s\n",strstr(year, search)); }

mike@linux-4puc:~> gcc test.c
mike@linux-4puc:~> ./a.out 
result is 2012
于 2012-09-19T12:05:17.640 に答える
1

数字が見つかるまで、文字列を 1 文字ずつスキャンします ( isdigit()0 以外を返します)。次に、その場所の文字列を unsigned long に変換しますstrtoul()。比較を行ってから、変換終了ポインターの戻り値を使用して、strtoul()スキャンを続行する場所を確認します。

于 2012-09-19T11:51:39.550 に答える