• ベストアンサー

文字列の分解

”abddfr018874”のようにアルファベットと数字が分かれている文字列において、アルファベット部分と数字部分に分けて取り出したいのですが、そういうことが できる関数は有りますか? 多分無いと思うのですが、そうだとすると1文字ずつ数字かどうかを判断して、分解するしかないのでしょうか? <環境> WIN98 VC++6.0 MFC 

  • mk1234
  • お礼率94% (1832/1940)

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

strcspnやstrpbrkを使って、英字と数字の開始位置を求めてから切り出す。 なんて方法も。

mk1234
質問者

お礼

回答ありがとうございます。 絶対に無いと思っていたのですが、質問して良かったです。 次回からは標準関数を調べてから質問します。

その他の回答 (1)

回答No.2

strpbrkで分割位置を知ることができます。

mk1234
質問者

お礼

回答ありがとうございます。 次回からはちゃんと自分で調べます。

関連するQ&A

  • カンマで区切った文字の抽出について

    環境 WIN98 VC++6.0 MFC にて ”あああ,いい,うえお” のようにカンマで区切った文字列を ”あああ” と ”いい” と ”うえお” のように取り出し変数に格納したいのですが、どのようにすれば良いのでしょうか? MFCの便利な関数があればお教えください。

  • エクセル 関数 文字列を分ける

    23Ar23 28Ar05 3Ta16 8Ta07 11Ta53 14Ta21 …以下多数 のように文字列があって、アルファベット前の数字(1文字か2文字)、アルファベット(2文字)、アルファベット後の数字(2文字)の3つに分割したいのです。データ区切り位置の機能を使えれば簡単ですが、アルファベットの前の文字数が1字と2字のものがあるのでできません。RIGHT、LEFTの関数を使用すれば、アルファベット2文字とアルファベット後の数字2文字は抽出できますが、アルファベット前の数字(1文字か2文字)だけ取り出せません。 関数か何かの方法で文字数を分ける方法を教えてください。

  • 文字列から英数字のみを抽出する関数

    文字列から英数字のみを抽出する関数を教えていただきたいです。 セルの文字列にはひらがな、カタカナ、数字、アルファベット、記号等を含みます。 色々調べてはみたのですが、数字のみを抽出する関数の説明はたくさんありますが、 アルファベットも含むとなると見つかりませんでした。 数字0~9とアルファベット27個の計37個の文字なので、どうにか関数でできると思うのですが。 具体的には下記のようにしたいのです。 ●A列 今日iPhone5をauで購入 最新のNEWSを15時~PCで見る  Moonshotを生み出す「Google X」 ●B列にこう表示したいのです。 iPhone5au NEWS15PC MoonshotGoogleX スペースは残ったままでも結構です。 詳しい方、どうかよろしくお願いいたします。

  • ある文字列の最後の2桁で分解し配列にする方法・・・

    こんにちは。 ある12桁~24桁の数字に+1をした数字を表示しようとしています。 int型とfloat型が16桁以上の数字が扱えないようなので、おかしくなってしまいます・・・ 1111111111111111の数字に+1をすると 1.1111111111111E+15となります・・・。 これをどうにかできるようにしたいので、 この数字の最後の2桁で文字を分解し その2桁に+1をして、 再び 最後の2桁とそれ以前の文字列とを足して 元の桁数にしようと考えました。 しかし、この最後の2桁で文字を分解し、各変数か配列に収める方法がわかりません・・・ 何かよい方法もしくは関数などありませんか? どうか、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Perlでの文字列操作について

    Perlを使用しての文字列操作について教えてください。 たとえば以下のような数字とアルファベットが順に並ぶ文字列があるとします。 11A4C555D67B114B9423C アルファベットは1文字ですが、数字は何個でも連続で並びます。 この文字列を「数字アルファベット」の部分で分割し、配列に格納したいのですが、うまくいきません。 @array=('11A','4C','555D','67B','114B','9423C') どなたか教えてください。よろしくお願いいたします。

  • 文字列の分解

    1つのセルに入力された文字列を分解したいのです。 例えばφ20 +0.010/+0.001と有る場合別のセルにφ20、+0.020、+0.001と分解したいのです。 =MID(C1,1,FIND(" ",C1)-1) =MID(C1,FIND(" ",C1)+1,6) =MID(C1,FIND("/",C1)+1,FIND("/",C1)) としているのですが、文字列に” ”や”/”がない場合は#VALUE!となり表示出来ませんし、+0.010の部分の桁が増減すると上手く表示が出来なく成ります。 何かいい方法は無いでしょうか?

  • 文字列の変換

    超 C++ 初心者です。 コンソールで "Hello, world!" を学んでからニ,三ヶ月程度です。 C++ の string クラスのメンバ関数 c_str() を用いることで /**  * string(C++ の文字列)から C の文字列(文字配列)を取り出し  * その先頭のアドレスを返す  */ ということができるのを学びました。 今 C++ の string および VC++ の CString の変換をしたいと思っています。 例えば VC++ で MFC アプリケーションを作っているとき, C++ の string である temp を VC++ の CString として使えるように するには,どういう手段をとればよいのでしょうか。 逆に VC++ の CString である temp を C++ の string として使うとき の方法もご教授ねがえれば幸いです。 超初心者につき,方法があまりにも難しいようでしたら断念することも考えています。

  • 文字列を分解したいのですが・・・

    VC++初心者です。 ある文字列(数値、数値、数値CRLF数値、数値・・・)のような中からコンマで区切られた数字を取り出したいのですがうまくいきません。 とりあえずはコンマと改行コードの位置だけでも探したいのですがどうやったら良いでしょうか?お知恵を貸してください。 char buffer[64] = 10.52,5.88,4.37(改行コード)6.42,41.91; char* result; int ch1 = "CRLF"; result = strchr(buffer,ch1); int ch2 = "," result = strchr(buffer,ch2); 改行コードは最初の文字列に入ってるはずですが見えないので(改行コード)と入力しました。 よろしくお願いいたします。

  • Excel2003 VBA 文字列の比較で

    Excel2003 VBAです。 2つの文字列があって、この2つの文字列を日本語の部分だけで 比較しようとしています。 なので、文字列からアルファベットと数字と記号を削除してから 比較したいのですが、どんな方法があるでしょうか。 よろしくお願いします。

  • VC++ 文字列のDate型チェック

    こんばんは。 VC++でVBのIsDateのような使い方をする関数 CString または CHar配列などの文字列がDate型かどうか チェックする関数を探しています。 MFCとかにないのでしょうか? 2006/05/26とかのチェックは一文字づつ抜き出して xxx/xx/xxという形はチェックできるのですが うるう年とか考慮すると自作だとかなり複雑なものになってしまいそう なので・・・ どなたかお分かりになる方、よろしくお願いします。

専門家に質問してみよう