[rank:a]の検索結果


C言語のstrncpy関数やmemcpy関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して部分文字列を取り出すことができません。 そこで半角英数も全角文字も1文字として部分文字列を取り出すことができる関数を作成します。

以下はそのコードです。[C言語]UTF-8でエンコードされた文字列の文字数を取得するコードと同様に、文字の1バイト目のビットの状態を調べることによってその文字が何バイト文字を判定しています。

#include <stdio.h>
#include <string.h>

char *substr_utf8(char *dest, char *src, int offset, int len);
int _bytesize(unsigned char code);


int main(void)
{
    char *testStr = "ABCDEFGあいうえおアイウエオ愛夢佐々木";
    char strBuf[256];

    memset(strBuf, 0sizeof strBuf);

    printf("substr_utf8($testStr, 0, 5) = %s\n", substr_utf8(strBuf, testStr, 05));
    printf("substr_utf8($testStr, 3, 3) = %s\n", substr_utf8(strBuf, testStr, 33));
    printf("substr_utf8($testStr, 10, 4) = %s\n", substr_utf8(strBuf, testStr, 104));
    printf("substr_utf8($testStr, 13, 5) = %s\n", substr_utf8(strBuf, testStr, 135));

    return 0;
}

/* UTF-8でエンコードされた文字列の部分文字列を取り出す */
/* substr_utf8 (文字列式, オフセット, 長さ)*/
char *substr_utf8(char *dest, char *src, int offset, int len)
{
    int srclen = strlen(src);
    int pos = 0;
    int count = 0;
    char *cp = dest;

    while (pos < srclen) {
        unsigned char code;
        code = *(src + pos); /* ASCIIコード値を取得 */
        int bytelen = _bytesize(code);

        if (count >= offset && count < (offset + len)) {
            memcpy(cp, (src + pos), bytelen);
            cp += bytelen;
            *cp = '\0';
        }
        pos += bytelen;
        count++; /* 文字数をカウント */
    }

    return dest;
}

/* 文字のバイト長を求める */
int _bytesize(unsigned char code)
{
    int size = 1;
    int i;

    if (0x80 & code) { /* 1バイト文字以外 */
        for (i = 2; i <= 8; i++) {
            code <<= 1;
            if (!(0x80 & code)) {
                break;
            }
            size++;
        }
    }
    return size;
}

実行結果
$ ./substr_utf8
substr_utf8($testStr, 0, 5) = ABCDE
substr_utf8($testStr, 3, 3) = DEF
substr_utf8($testStr, 10, 4) = えおアイ
substr_utf8($testStr, 13, 5) = イウエオ愛

[2324] Posted by kagahiro at 2013/07/02 11:02:48
0 point | Link (3) | Trackback (0) | Comment (0)

Yahoo! Internet Guide(YIG)が毎年開催しているオンラインイベント「Web of the Year」の年間総合大賞に、ユーザーが自由に編集に参加できるオンライン百科事典「Wikipedia(ウィキペディア)」が選ばれた。

年間総合大賞の他にもその年話題になったサイトを対象とした「話題賞」と、昨年11月以降にサービス開始したサイトを対象とした「新人賞」、カテゴリごとの「部門賞」があり、話題賞では動画共有サイトの「YouTube」、新人賞にはユーザー参加型の新聞サイト「イザ!」が1位になっている。また、コミュニティ部門ではこれまで1位だった「2ちゃんねる」を抜いて「mixi」が1位となっている。

Web of the Year 2006 受賞サイト発表!

なお、4位以下の結果も含めた、得票数、男女別・地域別などのランキング、受賞者のコメント、投票者に「支持された理由」などは、2006年12月27日に発売されるYahoo! Internet Guide 2007年2月号に掲載される。
[933] Posted by kagahiro at 2006/12/07 21:34:20
0 point | Link (3) | Trackback (0) | Comment (0)

罪刑法定主義とは、どのような行為が犯罪となり、それに対して科される刑罰がどのようなものかを、予め明確に規定しておかなければならないとする原則のことで国家が国民に不当に刑罰を科すことを防止しようとするものである。どのような行為(または不作為)が犯罪に当たるかを知ることができるため、国民は自由な活動ができる。しかし、過去に例のない犯罪行為が発生した場合は、この罪刑法定主義が問題になる場合もある。
[706] Posted by kagahiro at 2006/07/01 14:05:46
1 point | Link (1) | Trackback (1) | Comment (0)

月額利用料が約1000円程度と比較的低価格であるにもかかわらず、サーバーの性能が高いことで知られているレンタルサーバーサービスの「エックスサーバー(XSERVER)」が、サーバー申し込み5万件達成を記念してサーバ...
[1357] Posted by kagahiro at 2009/06/20 01:35:33
0 point | Link (2) | Trackback (0) | Comment (0)

アップルが、iPhone(アイフォーン)の最新の基本ソフト「iOS 7」を標準装備した新機種「iPhone 5c」「iPhone 5s」を発表した。「iPhone 5c」はプラスチック製の本体で新興国市場向けとされる廉価版で、緑、青、ピ...
[2345] Posted by kagahiro at 2013/09/12 11:01:27
0 point | Link (2) | Trackback (0) | Comment (0)

レンタルサーバーで自作またはネットなどで配布されているCGIを動かすためには、利用するレンタルサーバーでどのような環境変数が利用できるかを調べる必要があります。以下のPerlスクリプトは使いたいCGIを実行する...
[145] Posted by kagahiro at 2005/03/21 16:11:53
0 point | Link (4) | Trackback (0) | Comment (0)

Instagram(インスタグラム)は、iPhoneやAndroid端末などで撮影した写真を共有する無料の画像共有アプリで、投稿した写真はInstagramだけでなく、Facebook、Twitter、foursquare、Tumblr、Flickrなど他のソーシャル...
[2328] Posted by kagahiro at 2013/07/11 16:30:27
0 point | Link (1) | Trackback (0) | Comment (0)

トレンド相場とは、大きく見て上か下かの一定の方向を目指して動いている相場のことです。相場が上を目指して動いている場合は「上昇トレンド」、下を目指して動いている場合は「下降トレンド」と言います。これに対...
[2999] Posted by kagahiro at 2018/11/13 22:39:11
0 point | Link (2) | Trackback (0) | Comment (0)

「ポケモンGO(Pokemon GO、ぽけもんごー)」は、任天堂とのNiantic社によって開発された、位置情報を活用することにより、現実世界そのものを舞台として、ポケモンを捕まえたり、交換したり、バトルしたりすることの...
[2567] Posted by kagahiro at 2016/07/12 15:45:40
0 point | Link (4) | Trackback (0) | Comment (0)

2020年のクリスマスプレゼントキャンペーンとして、「NEKONEKO 2 (Ver 2.04)」向けのセットファイルを公開(ダウンロード)できるようにしました。今年の相場はほぼ終わりですが、来年のEA運用に向けて何かの足しにな...
[3156] Posted by kagahiro at 2020/12/26 21:13:43
0 point | Link (2) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  14 15 16 17 18  次へ >


アクセスランキング

今日のアクセスランキング TOP 10

  1. 「やっぱりダメでした」、「Twitpic」10月25にサービス終了 (1 PV)
  2. PostgreSQL (1 PV)
  3. Page Rank On (1 PV)
  4. 裁量トレードで出来た「くそポジ」を「PositionKeeper」の全決済機能を使って解消する (1 PV)
  5. RIA(Rich Internet Application、リッチインターネットアプリケーション) (1 PV)
  6. テキスト中のキーワードをリンクするPerlサンプルスクリプト (1 PV)
  7. FormStatus(フォームステータス)というサイトを作成しました (1 PV)
  8. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (1 PV)
  9. [C言語]2進数文字列を10進数の整数値に変換する関数 (1 PV)
  10. 2NN 2ちゃんねるニュース速報+ナビ (1 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (23 PV)
  2. FC2まとめ (15 PV)
  3. StartPage(スタートページ) - 匿名検索エンジン (8 PV)
  4. 将棋ウォーズPCブラウザ版がchrome、Firefox、edgeなどに対応 (8 PV)
  5. 2NN 2ちゃんねるニュース速報+ナビ (8 PV)
  6. 掲示板CGI ThreadPlus 1.2 のリリース (5 PV)
  7. 「Kindle for the Web」 (5 PV)
  8. 2ちゃんねる(2ch) (5 PV)
  9. 電通が2ちゃんねるを監視 「電通バズリサーチ(Dentsu Buzz Research)」 (5 PV)
  10. FC2ブログにコミュニティ機能 (4 PV)

アクセス統計

ディレクトリ

関連サイト