[10]の検索結果


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)

Google AdWords(グーグルアドワーズ)は、検索サービスで世界最大手のGoogle(グーグル)社が広告主(アドバータイザー)に対して提供する広告が表示されたときではなく広告がクリックされたときに料金が発生するクリック課金広告サービス(PPC)。

広告主はGoogleや他の検索エンジンの検索クエリに関連する広告を検索結果ページに表示するリスティング広告(検索連動型広告)だけでなく、Googleと提携しているウェブサイトの検索結果(AdSense for Search) 、一般のウェブページのコンテンツ(AdSense for Contents)、YouTubeなどの動画 (AdSense for Video)、携帯端末向けのウェブページ (AdSense for Mobile)、iPhoneやAndroidといったハイエンド携帯端末用アプリケーション内 (AdSense for Mobile Application) など、さまざまな出稿先を指定して広告を出すことができる。

毎月の固定費用はなく、例えば、1日の予算を500円、広告の上限クリック単価を10円といったように広告主は広告予算を自由に設定することができる。 実際の広告費用は、オークションによって決定されたクリック単価と利用者のクリック回数に応じて決まるが、設定した上限値を超えないようになっている。

Google AdWords - Google のオンライン広告プログラム
Google AdWords:キーワードツールを使って、キーワードを探す!【SEO講座】
Googleアドワーズの効果 - 小人さんの妄想

Google AdWords 成功の法則
ソーテック社 著者:川田 達矢


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2266] Posted by kagahiro at 2013/02/05 23:33:52
0 point | Link (2) | Trackback (0) | Comment (0)

Nexus(ネクサス)は、グーグルが販売しているタブレット端末で、持ち運びに便利な7インチの「Nexus7(ネクサスセブン)」と10インチ高解像度ディスプレイ(2560x1600)とパワフルなグラフィックプロセッサが搭載され、優れた画像処理能力を備えた「Nexus10(ネクサステン)」の2機種がある。OSはAndroidが搭載されていて、Google Playなどのアプリストアからアプリをダウンロードすることができる。

Nexus Google
Nexus 7が、とりわけヒジョーにかなりイイ
タブレット端末買おうと思う 「Nexus7 iPadmini Kindle FireHD」 : PCパーツまとめ

OverLay Brilliant for Nexus 7 高光沢液晶保護シート OBNEXUS7
ミヤビックス


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2258] Posted by kagahiro at 2013/01/10 11:30:04
0 point | Link (5) | Trackback (0) | Comment (0)

1バイト(8bit)の10進数を2進数の文字列に変換するコードのC言語版です。C言語では、PerlやPHPなどのように2進文字列に変換してくれる便利な関数は関数はないので、ビット演算子を使ってビットのオン・オフを判定して...
[2253] Posted by kagahiro at 2012/12/21 17:23:17
0 point | Link (6) | Trackback (0) | Comment (0)

Perlのsubstr関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して部分文字列を取り出すことができません。それでは不都合なことも多いので、半角英数も全角文字も1文字と...
[2244] Posted by kagahiro at 2012/12/13 10:51:25
0 point | Link (4) | Trackback (0) | Comment (0)

PHPの場合は、ズバリ10進数を2進文字列に変換できるdecbin関数があるので、decbin関数を使用すればいいのですが、もちろん、Perlの場合と同様にビット演算で2進文字列に変換することもできます。以下は、そのサンプル...
[2242] Posted by kagahiro at 2012/12/11 19:33:29
0 point | Link (1) | Trackback (0) | Comment (0)

Perlの関数を使用して、以下の手順で10進数を2進文字列に変換することができます。sprintf関数で10進数を16進文字列に変換pack関数で16進文字列をバイナリーにパックunpack関数で2進文字列に変換例えば、文字列の先頭...
[2239] Posted by kagahiro at 2012/12/09 20:36:29
0 point | Link (4) | Trackback (0) | Comment (0)

PC向けのOS(オペレーティングシステム)としては圧倒的なシェアを持つマイクロソフトのOS「Windows」の最新版「Windows 8(ウィンドウズ エイト)」の日本語版の販売が開始された。Windows 8(ウィンドウズ エイト)は...
[2233] Posted by kagahiro at 2012/10/26 12:17:19
1 point | Link (3) | Trackback (1) | Comment (0)

Google検索アプライアンス(Google Search Appliance)は、検索エンジン世界最大手のGoogleが企業向けに販売しているドキュメント検索に特化したハードウェアと検索システムが一体となった製品で、ユーザーはインター...
[2229] Posted by kagahiro at 2012/10/18 11:39:32
0 point | Link (1) | Trackback (0) | Comment (0)

GMOインターネットが日本マイクロソフトが提携し、アプリケーション開発者向けに、仮想デスクトップ(GMOインターネットが有するデータセンター内のサーバー上に仮想的に構築したWindowsデスクトップに自宅のPCやスマ...
[2228] Posted by kagahiro at 2012/10/05 10:07:00
0 point | Link (3) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  17 18 19 20 21  次へ >


アクセスランキング

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (7 PV)
  2. 2NN 2ちゃんねるニュース速報+ナビ (3 PV)
  3. 衆議院インターネット審議中継 (2 PV)
  4. 「やっぱりダメでした」、「Twitpic」10月25にサービス終了 (1 PV)
  5. [将棋]動画配信やライブ配信を行っているおすすめの将棋系ユーチューバー(YouTuber)チャンネル (1 PV)
  6. メルクマニュアル 日本語版 (1 PV)
  7. 「さくらのレンタルサーバ」で無料SSL証明書「Let's Encrypt」が利用可能に (1 PV)
  8. C言語 (1 PV)
  9. Webメールのアドレス帳から勝手に招待状をばら撒くSNS「Tagged」 (1 PV)
  10. Python(パイソン) (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (30 PV)
  2. FC2まとめ (15 PV)
  3. 2NN 2ちゃんねるニュース速報+ナビ (10 PV)
  4. StartPage(スタートページ) - 匿名検索エンジン (8 PV)
  5. 将棋ウォーズPCブラウザ版がchrome、Firefox、edgeなどに対応 (8 PV)
  6. 掲示板CGI ThreadPlus 1.2 のリリース (5 PV)
  7. 「Kindle for the Web」 (5 PV)
  8. [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (5 PV)
  9. 2ちゃんねる(2ch) (5 PV)
  10. 電通が2ちゃんねるを監視 「電通バズリサーチ(Dentsu Buzz Research)」 (5 PV)

アクセス統計

ディレクトリ

関連サイト