C言語関係掲示板

過去ログ

No.1205 検索文字前後の文字列を取得する

[戻る] [ホームページ]
No.15835

検索文字前後の文字列を取得する
投稿者---京(2004/07/23 20:25:39)


ある文字列から検索文字の前後の文字列を抽出するプログラムを作成しています。
例えば ○¥△ となっていたら検索文字「¥」の前後の○、△を抽出します。
○も△もそれぞれ全角一文字。
検索対象の文字列の形は「○¥△」か「○」か「○@△」のいずれかです。
で、この「¥」が含まれている時のみ、その前後の一文字を抽出したいのです。
とりあえず以下のソースまで書いたのですがその先が力及ばず作れていません。
すみませんがご教授お願いいたします。読みにくい文章すみません。


abstraction(char* x_str_cp){  //検索対象の文字列

  char a[] = "¥" //検索文字(注:全角)
  char b[2];
  char c[2];
  int ret;  

  //全角1文字目を1文字分比較
  ret = strncmp(x_str_cp+2,a,2);
  //検索文字があった場合
  if(ret == 0){

    //ここで「¥」前後の全角一文字を
    //それぞれb,cに入れたい

  }
}


No.15836

Re:検索文字前後の文字列を取得する
投稿者---あかま(2004/07/23 21:03:09)


たぶんこんな感じ。

#include <stdio.h>
#include <string.h>

int main(){
    char a[]="一日千秋";
    char b[3],c[3];
    char *cp;
    
    cp = strstr(a,"日");
    
    b[0]= *(cp-2);
    b[1]= *(cp-1);
    b[2]='\0';
    
    c[0]= *(cp+2);
    c[1]= *(cp+3);
    c[2]='\0';
    
    printf("%s\n",b);
    printf("%s\n",c);
    
}




No.15845

Re:検索文字前後の文字列を取得する
投稿者---京(2004/07/24 16:22:24)


あかまさんレス有難うございます。
あまりのレスの速さに脱帽です。
返事遅れてすみません。
助かりました。