• 締切済み

strtokで[を使った所、端という字で区切ってしまいす。回避方法はありますか?

strtokで[ ] ,を区切り文字として使用しています。 文字列の読み込みが変なので調べてみたら、端という文字の2バイト目(という表現でいいかわかりませんが)が、[と同じでした。 どうやら、端という文字も区切リ文字として、区切られてしまったようです。 他の日本語でも、同様の現象が起こるんでしょうか? これを回避する方法は、ありますでしょうか?

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

正統なのは #1 だと思うけど文字コードを EUC にする.

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

 処理系をかえてみる。

全文を見る
すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

> 他の日本語でも、同様の現象が起こるんでしょうか? 起きます。

全文を見る
すると、全ての回答が全文表示されます。
  • akanekor
  • ベストアンサー率52% (102/194)
回答No.1

#include <wchar.h> wcstok(......) でダメですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • strtokについて

    ただ今、C言語の勉強中のヨッピーともうします。 今回質問させていただきたいのは、strtokについてです。 時間を格納している文字列 char time[] = "2007:10:18:22:30:55";//年月日時間 から不要な「:」を抜き出す作業を行っています。 ただ、抜き出して表示するのではなく、別の変数に「:」を抜かした 文字列を代入させたいのです。 char kakunou[16];     //用意した変数に kakunouに"20071018223055" //「:」が入っていない日付を入れたい 自分で調べましたら、strtokやstrtokenという関数が使用したらいいのではないことが分かりました。 どうしたら、不要な文字を抜かして新しい変数に代入できるでしょうか? また、他にいい方法がありましたら、strtokを使用しなくても大丈夫です。 よろしくお願いいたします。

  • strtokのしくみについて

    よろしくお願い致します。 strtokは以下のように使いますよね。 (と言っても今回初めて使うのですが) 1回目はstrを渡しているので自然ですが、2回目以降はNULLですよね。なのにどうしてstrを続けて分解するということが出来るのでしょうか? うまく説明できませんが、要はstrtokはどういうコードで実現されているのでしょうか? int main(void) { char str[] = "ABCD ef.1234.G"; char *tp; /* スペース.を区切りに文字列を抽出 */ tp = strtok( str, " ." ); puts( tp ); while ( tp != NULL ) { tp = strtok( NULL," ." ); if ( tp != NULL ) puts( tp ); } return 0; }

  • c#でC言語のstrtokに相当する関数は何か

    文字列から指定した文字でデータを区切る関数strtokがC言語にはある これに相当するC#の関数は何か 例えばCでは以下のように書く。 char data1[]= " 123 , 456 Yamada " ; char *token ; strtok( data, " ," ) ; /* スペースとカンマを区切りに文字列を抽出 */ token = strtok( str, " ." ); printf(" token chat = %s\n", token ) ; while ( token != NULL ) { token = strtok( NULL," ." ); if ( token != NULL ) printf(" token chat = %s\n", token ) ; } これに相当するc#のSplit関数を使用すると 不要な空白を取り出しているようである 知っている方がおりましたら、教えて下さい。

  • 端と中央の間

    日本語の表現に苦しんでいます。 鉛筆ほどの長さのあるものに対しその両側の「端」と、「中央」の間の部分をどう表現したら良いでしょうか。 「端と中央の間」とすれば良いのでしょうが、助詞を使わず端的な表現があれば幸いです。 [=======================] 端     中央   ↑   端 よろしくお願いいたします。

  • Mac投稿文字化け回避するには?

    QNo.2337733 HTMLカテゴリ 「海外掲示板日本語サイトにMacから投稿の文字化けを回避するには?」 http://oshiete.nikkeibp.co.jp/kotaeru.php3?q=2337733 で質問しましたが、回答がないためこちらに質問します。 海外会員制フォーラム日本語サイトにMacから投稿すると????に文字化けするとの質問があります。私はWinユーザですが、WinからはOKです。 サイト       :http://www.celticminded.com/​ (登録制) 日本語サイトのソース: lang="en"   charset=ISO-8859-1 クライアント環境  : Mac OS X 10.4.7  safari 現象 : ・閲覧は問題なく日本語表示される ・エンコード設定や、フォントを「ヒラギノ角ゴ Pro」に変更したところ、入力時の文字化けは直ったが、POST後は文字化けするそうです。 ・ソースを見ると、Winからのmessageは "&#20803;・・・"なのに、Macからの2バイト文字は全て "???"になってます。 質問 1. Macからの投稿文字化けを回避する方法を教えてください。    2. そもそも、変な漢字などに化けるのでなく、???に化けるということは、ソースのcharsetを日本語用に変えるしかないのでしょうか? 3. コードISO-8859-1なのに、WinからのPOSTは問題なく日本語表示されるのは何故ですか? 4. 別ユーザからは、Mac(safari)より数ヶ月前までは日本語POSTできたのに、今は文字化けするとの報告もあります。   理由は何が考えられるでしょうか? 他のMacユーザの状況はわかりません。 私はMac未経験です。 宜しくお願いします。

    • ベストアンサー
    • Mac
  • 【c++】文字列の操作

    お世話になります。 テキストの操作について質問があります。 getline関数を使用してテキストの1行分を読み込み その文字列をstrtok関数を使用し区切り文字ごとに配列に入れたいと考えています。 ですがgetlineはstd::string型の変数が必要でstrtok関数はchar型しか受け付けないため 関数同士で型が合わず困っています。 何とか型を合わせる方法は無いでしょうか。 以下にソースコードを記載しますのでご指導お願いします。 int main(){ using namespace std; string strText; char chArray[100]; ifstream fs("test.txt"); //パスで指定されたファイルから1行分の文字列を取得する while( getline(fs , strText , '\n') ){ //区切りごと配列に入れたい chArray = strtok(strText , ","); } }

  • トークン取得

    strtokを使用してcsv形式ファイルからカンマ区切りとしてデータを取り込みたいのですが、データ無しの場合(,,となっているとき)データ的には取り込んでいないのですが、その時のポインタが示すデータは文字列1(strlen結果)となっています。データを表示させると何も表示されません。このような場合ポインタが示す内容はどのようなものなのでしょうか?

  • キーボードのローマ字返還方法

     何かの拍子にローマ字で日本語を打っていたのが、キーボードの 各ボタンのひらがなで打ち込むのに変わってしまいました。(きっと 変な所を押して設定が変わってしまった)どうすればキーボードが、前のローマ字入力で文字を日本語で打てるように戻せますか?急いでます。よろしくお願いします。

  • 海外で英語版XPを使用している場合の文字化け回避法

    今アメリカで英語版XPを使用しています。 ただ、日本語のサイトに行くと文字化けが発生することがよくあります。 それにくわえ、ソフトのインストール画面も文字化けしてしまいます。 一応日本語が読み取れるようにXPのCDをつかって言語をインストールしたのですが・・・。 完全文字化け回避方法っていうのはありませんか?

  • csvファイルをエクセルで開いたら文字化け

    csvファイルを下記設定で開いたら「'(シングルクオテーション)」が文字化けしました。 「'(シングルクオテーション)」以外は文字化けしていません。 どうしたら「'(シングルクオテーション)」が文字化けしないように開けますか? 文字列→日本語(Windows-932) 言語→標準-日本語 区切り→コンマ

このQ&Aのポイント
  • ドライバーをインストールして、IPアドレスを調べてポート設定したが、有線LAN接続で印刷できない。ポートの設定が正しいのか教えてください。また他にも確認すべき設定あれば教えてください。
  • Windows10のパソコンでPT-P950NWを有線LAN接続しましたが、印刷ができません。ポート設定に問題があるのか教えてください。
  • PT-P950NWを有線LAN接続して印刷しようとしていますが、うまくいきません。ポートの設定が正しくない可能性があります。他にも確認すべき設定があれば教えてください。
回答を見る