文字列の途中から複写できるか

このQ&Aのポイント
  • 文字列を途中から複写する方法について教えてください。
  • strncpy()関数では最初からnバイトまでの複写ができますが、途中から複写することはできるのでしょうか?
  • 質問者はコンパイル時に関数 'CODCfc_Sysdate' が定義されていないというエラーが発生しました。
回答を見る
  • ベストアンサー

文字列を途中から複写(再質問)

さきほど、↓のような質問をして、回答をいただいたので、 動作確認もせず、回答を締め切ってしまったのですが、 実際につくってみたら、コンパイルで「関数 'CODCfc_Sysdate' は定義されていません。」と言われてしまいました。 ネットでも探してみたのですが、 Cではこの関数は使えないのでしょうか? 何度もすいませんが、どなたか(...というか、先ほど回答くださった方 )教えてください。 --------------------------------------------------------------------- strncpy()を使うと最初からnバイトまで複写というのはできるようですが、 文字列を途中から(例えば10文字中の3番目から5番目までとか)複写することはできないのでしょうか? 教えてください。

  • sprit
  • お礼率66% (45/68)

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

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

Cの標準ライブラリにはsubstrはなかったと思います。処理系依存では定義されているでしょうけど。 それで次のようなのはいかがでしょう。 文字列srcのiバイト目からnバイトを配列destにコピーするなら strncpy(dest, src+i, n); 実際に使うときは適当にマクロにした方が分かりやすいかな。

sprit
質問者

お礼

教えていただいたやり方で、今度こそうまくいきました。 どうもありがとうございました。おかげで家に帰れます(笑)

その他の回答 (1)

  • 50100
  • ベストアンサー率28% (99/351)
回答No.1

必要なヘッダファイルがインクルードされていないのでは?

sprit
質問者

補足

そう思ったのですが、C言語でstrsubを扱っているサイトがみつからず、 (手持ちのCのリファレンスブックにものってなかったので)何をインクルードしたらいいのかわかりません。ご存知でしたら教えてください。

関連するQ&A

  • 文字列を途中から複写

    strncpy()を使うと最初からnバイトまで複写というのはできるようですが、 文字列を途中から(例えば10文字中の3番目から5番目までとか)複写することはできないのでしょうか? 教えてください。

  • 【VBA】 文字列の中から指定の文字列を取り出す

    VBAで文字列から指定の文字のn番目からn+1番目までの文字列を取り出すことは可能でしょうか? A1セルに下記の文字列があった場合、「1番目の半角スペースから2番目の半角スペースまでの文字列」を取り出したいのです。 5 53 00 8R この場合、53を取り出したいというわけです。 また、可能でしたら「最後の半角スペースから文字列の最後まで」を取り出す方法も教えていただけるとありがたいです。 この場合は8Rとなります。 InStr関数を使えばできるかもと思ったのですが、できそうなものが思い浮かびません。 どなたか教えていただけませんでしょうか。 よろしくお願いいたしますm(_ _)m

  • VB2005の文字列関連の関数について

    VB2005で ある文字列中の特定文字の位置を返す関数はありますか? たとえば "1234567890" という文字列中で"56"という文字列は "5"番めにあるというような。 N88BasicのPOS$のようなイメージです。

  • EXCEL関数 文字列の一部の数字文字を数値化して計算につかいたい

    EXCEL関数について質問です。 あるセルの文字列に記載されている一部の数字文字を 数値化して計算につかいたいと思っています。 <例>  あるセルの文字列(A1)⇒あいうえお12345番目の方  出力したい数字文字⇒12345 知る限りの関数を使って以下の関数式を作ってみました。 (1) MID関数を使う  最初の文字「あいうえお」は10バイトなので開始は「11」としました。 (2)後に登録されている「番目の方」を除きたいので  SEARCHB関数を使って、「番目」の開始バイトを見つけ  そこから最初の文字バイト「11」を引き、抽出するバイトを求める。 (3)抽出した文字列を数値に変換するVALUE関数を使う。 次の関数式を作ってみました。   =VALUE(MIDB(A1,11,SEARCHB("番目",A1,1)-11)) でも結果は「」となります。 何がいけないのかわかりません。エラーの原因がわかれば教えて下さい。 ほかによい方法があれば教えてください。 よろしくお願いします。  

  • 空白文字列の生成

    今、javascriptの勉強をしているのですがインターネットで調べてみても、分からないところがあるので教えてください。 問題のプログラム仕様は 空白文字列(スペース)を生成する関数を作る。 関数を利用して、イメージファイルの先頭にスペースを表示していく。 コードの入力手順は 1、空白文字列を作成するspc(n)関数を作る for(i=1; i<n; i++) s=s+" "; return s; 2、イメージファイルを表示する。 3、for文を使用して「i」が1,3,5,7,9になるように繰り返しを行う。 4、関数spc(i)でi個分の空白文字列と生成し、「スペースi」とイメージファイルの間に表示させる。 という問題なのですが2番と3番はできるのですが1番と4番が分からないので教えてください。お願いします

  • excel 文字列抽出に関する質問

    エクセル文字列抽出について質問です。 例えば、 "西郷 隆盛" この文字列から、" "の前後に分けて "西郷" と "隆盛" をユーザ定義関数を用いて、それぞれ別セルに抽出する場合、どのようにモジュールに入力すれば良いのでしょうか? ご教授願います

  • Excelの文字列と文字列の連結

    A1のセルにはj50 C1のセルには01(ユーザ定義で00の書式) この二つの数値をCONCATENATE()関数を用いて文字列を 連結するとj501となってしまいます。 C1のセルを文字列の書式にするとうまくj5001と表示されますがそれ以外に方法はないでしょうか?

  • エクセルの文字列で似たものを抽出する

    いくつかあるエクセルの文字列のうち, 一番にてる文字列を抽出する方法を教えてください. たとえば,画像のように入力してある30通りの文字列のうち, ★の文字列に一番似ている文字列は1~30番の文字列のうちどれか, を知る方法について,具体的に教えていただけると嬉しいです. 関数は,不得意なのを踏まえて,教えていただけるとなお嬉しいです. どうぞよろしくお願いします.

  • 文字列検索(例えばindex関数)をバイト単位で行いたい

    やりたいことは日本語文字列の処理で、特定の文字を切り抜きたいのですがうまくいきません。 なぜなら、文字列を切り抜くsubstr関数がバイト単位であるのに対し、文字列を検索するindexがバイト単位でおこなわれていないからです。 例: 文字列"12万3456円"から、円だけを取り除きたいとします。 $str = "12万3456円"; $index = index($str,"円"); $newStr = substr($str, 0, $index); indexは7を返すが、substrで0から7番目を切り取っても、バイト単位なのでうまくいきません。 文字列の検索をバイト単位で行う方法を教えてください。 おねがいします。

    • ベストアンサー
    • Perl
  • 文字列

    Visual Basic6.0 よろしくお願いします。 (ab"N1"cde"N11"fjh"N111"ij"N1111"k) のような文字列から (ab"N0001"cde"N0011"fjh"N0111"ij"N1111"k) のように N の後の数字を4桁数字にしたい 場合はどうすれば良いでしょうか? 便利な関数や方法がありましたら教えてください。 お願いいたします。

専門家に質問してみよう