サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
www5f.biglobe.ne.jp/~fuku-labo
今回は、ハンドルについてです。 ハンドルは、ファイルを始めとして様々なもので使用するもので、 直接「~ハンドル」という名前が付けられていたり、 違う名前であっても扱い上はハンドルというものがあります。 さて、ハンドルというのは一言で言うと借り物タグです。 ハンドルを使う場面というのはほとんどの場合、 自分のプログラムとは独立しているライブラリを使用する場合です。 これは形式的には「独立した他のライブラリ」に何かを依頼して、 処理を委任する形になるのですが、その処理が一度では終わらず、 複数回の処理が必要になるケースというのがあります。 その時に「今回の処理が以前のどの処理の続きであるか」を判断するのに使用するのがハンドルです。 ハンドルと同種の性質を持つものとしては以下のようなものが挙げられます。 ●ネットサービスでのアカウント ●サイトで使用するセッションクッキー ●ロッカーやホテルなど
今回は、文字列を直接操作するにあたって、 日本語を含むShiftJIS文字列を操作するための扱い方についてです。 ShiftJIS文字コードでは日本語は2バイトで表現され、1バイト目に決まった値の範囲が入ります。 半角文字と全角文字の区別は、1バイト目の値を見て判断します。 問題は2バイト目だけを見ても判断できないことで、文字列の途中のあるバイトが半角文字なのか、 全角文字の1バイト目なのか、2バイト目なのかをそのバイトだけでは判断できません。 このため、途中のあるバイトの文字を区別したい場合でも、文字列の最初から見ていかなければいけません。 さて、その「全角文字の1バイト目」として決まっている範囲は 0x81-0x9F と 0xE0-0xFC の範囲です。 中途半端なこと この上ないのですが、こういうのは関数化しておけばいいですね。 int SJISMultiCheck(unsigned
今回から、基礎編へとランクアップです。 ここまでの54回分の知識は前提として進めますので、 分からなくなったり、自信がない人は入門編を読むことをお勧めします。 これまで、定義は変数と関数について書きました。 宣言についてはメインで解説したことがないので、初出のようなものですが、 宣言の概念というのは正体を知った状態の方がわかりやすいかと思うので、 こちらは後回しとします。 実質的な扱いは変数も関数も同じようなものなのですが、 まずはこれまで多用してきた変数をベースとして解説していこうと思います。 さて、今まで、「変数定義」と言えば、 「変数を新しく作って使えるようにする」ぐらいのイメージでいると思います。 実際、この講座も含め、大抵の入門書などにはそのように書いてあると思いますし、 確かに「変数を作って使えるようにしている」ので、間違ってはいません。 しかし、実はそれでは不完全なのです。
いよいよ、0x5c問題について書きます。 まず、0x5c問題とは何かということですが、 とりあえず私は、「2バイト目に0x5cを含む文字が起こす問題全般」だと考えています。 この「2バイト目に0x5cを含む文字」は後述します。(・・・もう見えてるかもしれませんが(笑)) その中で今回書くのは英語版環境や日本語処理に問題がある環境で発生する問題です。 (文字コード指定可能な環境ならば当然文字コードを正しく指定しなければ問題が発生します。 言語が漢字(文字)コード指定を持っている(だったはず)のRuby言語では要設定確認です) ちなみに何で英語版は問題になるのかといえば、たいていの場合、1文字を2バイトで表すなんてこと自体、 考えて作られてないからです。(アルファベットだけなら1バイトで十分) 前回のASCIIコード表を見ていただけると分かると思いますが、0x5cは「\」です。 そして、「\」
(04/11/29) 基本型一覧で浮動小数点型は符号なしにできないのに符号なしの記述がありましたので消去しました。 変数について書くことは多いので、数回に分けて書きます。 まずは型についてです。 C/C++言語は型についてかなり厳密です。 また、全ての基本型は数値しか保持できません。 文字は文字コードとして変数1つに1文字だけ入れられます。 char 型はちょうど1文字分の大きさです。 文字列を使う時は変数を並べた「配列」を使います。(配列については後ほど) 浮動小数点型( float,double 等)のみが小数を使え、 整数型( char,short,int,long 等)は小数を保持できません。 整数型は小数を扱えない代わりに、演算が高速です。 特に理由がなければ整数型を選んだほうが、速いプログラムができます。 また、保持できる範囲は少なくとも保持できる値の範囲であり、 必ずしも下記
[戻る] 演算子優先順位一覧(C/C++) (05/01/27) 右シフト演算子の備考がVisual C++固有のものだったので修正 (05/06/19) 除算代入演算子の解説が除算ではなく減算になっていたのを修正 (06/04/26) ビット演算系複合代入演算子の種別がビットではなく算術になっていたのを修正 (08/10/17) メンバポインタ演算子について加筆 C言語、C++言語の演算子の優先順位表です。 (結合規則の→は左から右を、←は右から左を表します) 表記名前または意味項種別優先順位結合規則解説備考
プログラミングをやってみたいけど、どうすればいいのかわからない・・・ そんな人に読んでもらいたい講座です。 目標は「プログラミングの世界に始めて足を踏み入れた人が自分のやりたい動作をプログラムできるようになること」です。 しかしもう既に習得して結構たつので、もう初めて足を踏み入れた頃の思考には帰れません・・・。 できる限り初心者向けの説明を心掛けますが、どこまで分かりやすく書けるか分かりません。 また、必要以上に説明過剰になるかもしれません。 なのでBBSに読んだ感想とか書いて頂けるとうれしいです。 (ここが分からない、分かりにくい等の意見も講座の完成度を上げるためには必要です。遠慮せずに書いてください) 長期連載企画なので、気長に読んでくださいませ(笑) 誤字、脱字、誤りなど気付いた方がいれば BBS のほうに報告お願いします。 現在、C/C++編以外は更新休止となっています。 他の章の
このページを最初にブックマークしてみませんか?
『www5f.biglobe.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く