文字列が含まれているかをチェックする

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
真由美

文字列が含まれているかをチェックする

#1

投稿記事 by 真由美 » 15年前

言語はVC++です。

String^ url = "http://www.google.co.jp/";
こういった文字列がありここに「google」が含まれているかを
探す方法はないでしょうか?
調べてみると正規表現?やらなんたらが出てきたのですが
それらしい関数が見つかりませんでした・・・。


真由美

Re:文字列が含まれているかをチェックする

#3

投稿記事 by 真由美 » 15年前

ご回答ありがとうございます。
ご丁寧にURLをありがとうございます。
そのメソッドを使ってみたのですが一文字ずつ検索されてしまっているようです・・・。

下記の様に書くとg、o、l、eのどれかが含まれているとif内に飛んでくれません・・・。
この文字列が含まれていたら処理をする~みたいに書きたいのですが
この関数では出来ないのでしょうか?

if(url->IndexOf("google") != -1 ){
}

お手数おかけいたしますが
ご回答頂けますと助かります。

ジュンヤ

Re:文字列が含まれているかをチェックする

#4

投稿記事 by ジュンヤ » 15年前

文字列が含まれているかチェックするサンプルを書いてみました。
#include <iostream>
#include <string>
using namespace std; 

int main()
{
    string str1( "aiueo google kakikukeko" );
    unsigned int loc = str1.find( "google", 0 );
    if( loc != string::npos )
      cout << "googleの位置は " << loc << endl;
    else
      cout << "googleは見つかりませんでした" << endl;

    return 0;
}
find()を使えば対象となる文字列から、調べたい文字列を検索することができます。
第一引数は、調べたい文字列で、第二引数は、検索を開始する位置です。

検索に成功したなら、戻り値として最初に文字列が現れた場所を返し、失敗したなら
string::nposを返します。
今回は、場所まで検索してますが、文字が存在するかどうかだけでよいなら、
if( str1.find( "google", 0 ) != string::npos )としてもよいと思います。

Justy

Re:文字列が含まれているかをチェックする

#5

投稿記事 by Justy » 15年前

>下記の様に書くとg、o、l、eのどれかが含まれているとif内に飛んでくれません・・・
 IndexOfでうまくいくはずなんですけど。

[color=#d0d0ff" face="monospace]
String^ url = "http://www.google.co.jp/";
if(url->IndexOf("google") >= 0)
{
System::Windows::Forms::MessageBox::Show("google");
}
[/color]


 上記のコードを実行して、メッセージボックスが現れませんか?

閉鎖

“C言語何でも質問掲示板” へ戻る