• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列の途中から途中までを抽出)

文字列の一部を抽出するプログラム

このQ&Aのポイント
  • char*型の文字列から指定した区間を抽出するプログラムを作成します。
  • セグメンテーションフォールトを解消する方法を説明します。
  • 要求通りに変数str1とstr2を初期化する方法を示します。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

>str2 = strtok(null, "/"); str2 = strtok((char*)0, "/"); かもしれません。 >後からarray[]の内容を変更した場合のstr1およびstr2は機体と別の動作しますけど。 後からarray[]の内容を変更した場合のstr1およびstr2は期待と別の動作しますけど。 です。 str1 = strtok(array, "/"); str2 = strtok((char*)0, "/"); strcpy(array, "012345678"); とかやった場合とか。

その他の回答 (5)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.6

No.5さん > 元の配列には 'i' がありません。 うぉう、そっちには気が使なった。 ってことは、「str2は各文字をインクリメントすべし」と仕様を推測しなきゃいけなかったのか。

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.5

>str2 = fghi 元の配列には 'i' がありません。どこかから持ってくるということでしょうか。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.4

>各変数が >str1 = abcd >str2 = fghi >となるようにしたいです。 嗚呼っ!! '/'だけでなく'e'もカットでしたか…… となるとstrtok()だと分断が問題ですかね……。 # No.2さんの…ポインタを+2しているところで気付いたっす。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>以下のコードだとstrncpyの部分でsegmantation faultになってしまいます。 そりゃ、str1はどこを指しているか判らない不正なポインタですからねぇ…。 >各変数が >str1 = abcd >str2 = fghi >となるようにしたいです。 array[]の内容は元々の状態から変わっても問題ない…んでしょうか? str1 = strtok(array, "/"); str2 = strtok(null, "/"); とか…。 array[]の内容書き換わりますし、 後からarray[]の内容を変更した場合のstr1およびstr2は機体と別の動作しますけど。