[文字数]の検索結果
Twitter(ツイッター)社がGoogleやSalesforceなど複数の企業による買収の打診を受けているとの報道によって、
Twitter社の株価が上昇している。近年
Twitterは、動画や画像の投稿機能を強化したり、これまで140文字と...
Twitter(ツイッター)社がGoogleやSalesforceなど複数の企業による買収の打診を受けているとの報道によって、Twitter社の株価が上昇している。
近年Twitterは、動画や画像の投稿機能を強化したり、これまで140文字としてきた投稿の文字数の制限を緩和するなどサービスの改善を行っているものの、Instagramなど他のソーシャルメディアの台頭によって、ユーザー数や売り上げで成長が鈍化しており株価も低迷していた。
GoogleとSalesforceによる買収提案報道でTwitter株は20%のジャンプアップ
Twitter may soon get formal bid, suitors said to include Salesforce and Google
Twitter、140文字制限の緩和策導入開始。画像や動画リンク、投票などが対象、5月に発表済みの仕様変更
コメントがつけやすくなって良さそうですね。116文字までというのはどういう理由なのかはわかりませんが。
Twitterは7日、
引用ツイートの方法を変更したと発表した。他のユーザーのツイートを
引用してツイートする際...
コメントがつけやすくなって良さそうですね。116文字までというのはどういう理由なのかはわかりませんが。
Twitterは7日、引用ツイートの方法を変更したと発表した。他のユーザーのツイートを引用してツイートする際に、元のツイートの文字数に関係なく、別途、116文字までのコメントを付けられる。まずはTwitterのウェブ版と公式スマートフォンアプリのiOS版で対応した。Android版でも近く対応するとしている。
ウェブ版では、リツイートアイコンをクリックするとポップアップ表示されるリツイートウィンドウに、コメントの入力フィールドが用意された。ここにコメントを入力してリツイートすれば引用ツイートになる。コメントを入力しなければリツイートになる。
ブックマーク先へ Twitter、引用ツイートに116文字までのコメントを追加可能に -INTERNET Watch
C言語のstrncpy関数やmemcpy関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して部分
文字列を取り出すことができません。そこで半角英数も全角文字も1文字として部分文字...
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, 0, sizeof strBuf);
printf("substr_utf8($testStr, 0, 5) = %s\n", substr_utf8(strBuf, testStr, 0, 5));
printf("substr_utf8($testStr, 3, 3) = %s\n", substr_utf8(strBuf, testStr, 3, 3));
printf("substr_utf8($testStr, 10, 4) = %s\n", substr_utf8(strBuf, testStr, 10, 4));
printf("substr_utf8($testStr, 13, 5) = %s\n", substr_utf8(strBuf, testStr, 13, 5));
return 0;
}
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);
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) {
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) = イウエオ愛
C言語のstrlen関数では
文字列の長さとして返ってくる値はバイト単位となるので、UTF-8でエンコードされている場合、漢字、ひらがな、カタカナなどは1文字で3となってしまいます。Webアプリケーションのテキスト処理で...
C言語のstrlen関数では文字列の長さとして返ってくる値はバイト単位となるので、UTF-8でエンコードされている場合、漢字、ひらがな、カタカナなどは1文字で3となってしまいます。
Webアプリケーションのテキスト処理ではそれでは不都合な場合もことも多いので、半角英数も全角文字(漢字、ひらがな、カタカナなど) も1文字としてカウントする関数を作成することにします。
#include <stdio.h>
#include <string.h>
int strlen_utf8(char *cp);
int _bytesize(unsigned char code);
int main(void)
{
char *testAscii = "ABCDEFG";
char *testHira = "あいうえお";
char *testKata = "アイウエ";
char *testKanji = "愛々木";
char *testAll = "ABCDEFGあいうえおアイウエオ愛夢佐々木";
printf("strlen(testAscii) = %d\n", strlen(testAscii));
printf("strlen_utf8(testAscii) = %d\n", strlen_utf8(testAscii));
printf("strlen(testHira) = %d\n", strlen(testHira));
printf("strlen_utf8(testHira) = %d\n", strlen_utf8(testHira));
printf("strlen(testKata) = %d\n", strlen(testKata));
printf("strlen_utf8(testKata) = %d\n", strlen_utf8(testKata));
printf("strlen(testKanji) = %d\n", strlen(testKanji));
printf("strlen_utf8(testKanji) = %d\n", strlen_utf8(testKanji));
printf("strlen(testAll) = %d\n", strlen(testAll));
printf("strlen_utf8(testAll) = %d\n", strlen_utf8(testAll));
return 0;
}
int strlen_utf8(char *cp)
{
int textlen = strlen(cp);
int pos = 0;
int count = 0;
while (pos < textlen) {
unsigned char code;
code = *(cp + pos);
int bytelen = _bytesize(code);
pos += bytelen;
count++;
}
return count;
}
int _bytesize(unsigned char code)
{
int size = 1;
int i;
if (0x80 & code) {
for (i = 2; i <= 8; i++) {
code <<= 1;
if (!(0x80 & code)) {
break;
}
size++;
}
}
return size;
}
strlen_utf8関数では、1バイト目のASCIIコード値をパラメータとして_bytesize関数を呼び出して文字のバイト数を求め、1文字分の処理を行うたびに文字数をカウントアップしています。
また、_bytesize関数ではパラメータで渡されたコード値の場合の文字のバイト数を、コード値のビットの状態から判定して戻り値として返しています。
プロクラムの実行結果は以下のようになります。
kagahiro@kagahiro-PC ~/sample/c
$ ./strlen_utf8
strlen(testAscii) = 7
strlen_utf8(testAscii) = 7
strlen(testHira) = 15
strlen_utf8(testHira) = 5
strlen(testKata) = 12
strlen_utf8(testKata) = 4
strlen(testKanji) = 9
strlen_utf8(testKanji) = 3
strlen(testAll) = 52
strlen_utf8(testAll) = 22
1バイト(8bit)の10進数を2進数の文字列に変換するコードの
C言語版です。
C言語では、PerlやPHPなどのように2進文字列に変換してくれる便利な関数は関数はないので、ビット演算子を使ってビットのオン・オフを判定して...
1バイト(8bit)の10進数を2進数の文字列に変換するコードのC言語版です。
C言語では、PerlやPHPなどのように2進文字列に変換してくれる便利な関数は関数はないので、ビット演算子を使ってビットのオン・オフを判定して、2進文字列を作成していくしかありません。
#include <stdio.h>
#include <string.h>
void dec2bin(char src, char *dest);
const int buf_size = 9;
int main(void)
{
char buf[buf_size];
char str1[] = "あいうえお";
char *cp;
int num = 1;
for (cp = str1; *cp; cp++) {
memset(buf, '\0', sizeof(buf));
dec2bin(*cp, buf);
printf("%d:%s (0x%02.2X)\n", num, buf, 0x000000ff & *cp);
num++;
}
return 0;
}
void dec2bin(char src, char *dest)
{
const int bit_size = 8;
int i;
for (i = 0; i < bit_size; i++) {
dest[i] = (0x80 & src) ? '1' : '0';
src <<= 1;
}
}
解きながら学ぶC言語
ソフトバンククリエイティブ 著者:柴田 望洋,肘井 真一,高木 宏典,赤尾 浩
amazon.co.jpのカスタマーレビューを見る
powered by amalink
Perlのsubstr関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して
部分文字列を取り出すことができません。それでは不都合なことも多いので、半角英数も全角文字も1文字と...
Perlのsubstr関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して部分文字列を取り出すことができません。それでは不都合なことも多いので、半角英数も全角文字も1文字として部分文字列を取り出すことができる関数を作成します。
以下はそのコードです。[Perl]UTF-8でエンコードされた文字列の文字数を取得するコードと同様に、文字の1バイト目のビットの状態を調べることによってその文字が何バイト文字を判定しています。
#!/usr/bin/perl
use strict;
use warnings;
my $testStr = "ABCDEFGあいうえおアイウエオ愛夢佐々木";
print "substr_utf8($testStr, 0, 5) = " . substr_utf8($testStr, 0, 5), "\n";
print "substr_utf8($testStr, 3, 3) = " . substr_utf8($testStr, 3, 3), "\n";
print "substr_utf8($testStr, 10, 4) = " . substr_utf8($testStr, 10, 4), "\n";
print "substr_utf8($testStr, 13, 5) = " . substr_utf8($testStr, 13, 5), "\n";
print "substr_utf8($testStr, 13) = " . substr_utf8($testStr, 13), "\n";
exit;
# UTF-8でエンコードされた文字列の部分文字列を取り出す
# substr_utf8 (文字列式, オフセット[, 長さ])長さを指定しなかった場合は最後まで
sub substr_utf8 {
my ($src, $offset, $len) = @_;
my $srclen = length($src);
my $pos = 0;
my $count = 0;
my $dest = '';
while ($pos < $srclen) {
my $code = ord substr($src, $pos, 1); # 先頭のASCIIコード値を取得
my $bytelen = _bytesize($code);
if (defined($len)){
if ($count >= $offset && $count < ($offset + $len)) {
$dest .= substr($src, $pos, $bytelen);
}
} else { # 長さ指定なし
if ($count >= $offset) {
$dest .= substr($src, $pos, $bytelen);
}
}
$pos += $bytelen;
$count++; # 文字数をカウント
}
return $dest;
}
# 文字のバイト長を求める
sub _bytesize {
my $code = shift;
my $size = 1;
if (0x80 & $code) { # 1バイト文字以外
$code <<= 1;
for my $i (2 .. 8) {
$size++;
$code <<= 1;
last if (!(0x80 & $code));
}
}
return $size;
}
substr_utf8関数では、substr関数を使用して1バイト目のASCIIコード値を取得し、
_bytesize関数を呼び出して文字のバイト数を求め、その文字がパラメータで指定された範囲の場合は、戻り値として返す文字列に連結し、そうでなかった場合は文字数のカウントアップのみ行なっています。
_bytesize関数ではパラメータで渡されたコード値の場合の文字のバイト数を、コード値のビットの状態から判定し戻り値として返しています。
もっと自在にサーバを使い倒す 業務に役立つPerl (Software Design plus)
技術評論社 著者:木本 裕紀
amazon.co.jpのカスタマーレビューを見る
powered by amalink
Perlのlength関数ではバイト単位となるので、UTF-8でエン
コードされている場合、漢字、ひらがな、カタカナなどは1文字で3となってしまいます。ブログなどのアプリケーションのテキスト処理ではそれでは不都合な場合も...
Perlのlength関数ではバイト単位となるので、UTF-8でエンコードされている場合、漢字、ひらがな、カタカナなどは1文字で3となってしまいます。
ブログなどのアプリケーションのテキスト処理ではそれでは不都合な場合もことも多いので、半角英数も全角文字(漢字、ひらがな、カタカナなど)
も1文字としてカウントする関数を作成することにします。
UTF-8では、
1バイト目の先頭ビットが0の場合は1バイト文字
1バイト目の先頭から3ビットが110の場合は2バイト文字
1バイト目の先頭から4ビットが1110の場合は3バイト文字
1バイト目の先頭から5ビットが11110の場合は4バイト文字
1バイト目の先頭から6ビットが111110の場合は5バイト文字
1バイト目の先頭から7ビットが1111110の場合は2バイト文字
という仕様ですので、1バイト目のビットの状態を調べることによって、その文字が何バイトかを調べることができます。
以下のコードでは、この仕様にもとづいて全角文字を含む文字列の文字数を取得しています。
#!/usr/bin/perl
use strict;
use warnings;
my $testAscii = "ABCDEFG";
my $testHira = "あいうえお";
my $testKata = "アイウエ";
my $testKanji = "愛々木";
my $testAll = "ABCDEFGあいうえおアイウエオ愛夢佐々木";
print "length($testAscii) = ".length($testAscii), "\n";
print "strlen_utf8($testAscii) = ".strlen_utf8($testAscii), "\n";
print "length($testHira) = ".length($testHira), "\n";
print "strlen_utf8($testHira) = ".strlen_utf8($testHira), "\n";
print "length($testKata) = ".length($testKata), "\n";
print "strlen_utf8($testKata) = ".strlen_utf8($testKata), "\n";
print "length($testKanji) = ".length($testKanji), "\n";
print "strlen_utf8($testKanji) = ".strlen_utf8($testKanji), "\n";
print "length($testAll) = ".length($testAll), "\n";
print "strlen_utf8($testAll) = ".strlen_utf8($testAll), "\n";
exit;
# UTF-8でエンコードされた文字列の文字数を取得する。
sub strlen_utf8 {
my ($text) = @_;
my $textlen = length($text);
my $pos = 0;
my $count = 0;
while ($pos < $textlen) {
my $code = ord substr($text, $pos, 1); # 先頭のASCIIコード値を取得
my $bytelen = _bytesize($code);
$pos += $bytelen;
$count++; # 文字数をカウント
}
return $count;
}
# 文字のバイト長を求める
sub _bytesize {
my ($code) = @_;
my $size = 1;
if (0x80 & $code) { # 1バイト文字以外
$size++;
$code <<= 1;
for my $i (2 .. 8) {
last if (!(0x80 & $code));
$size++;
$code <<= 1;
}
}
return $size;
}
strlen_utf8関数では、substr関数を使用して1バイト目のASCIIコード値を取得し、
_bytesize関数を呼び出して文字のバイト数を求め、1文字分の処理を行うたびに文字数をカウントアップしています。
_bytesize関数ではパラメータで渡されたコード値の場合の文字のバイト数を、コード値のビットの状態から判定し
戻り値として返しています。
ゼロからわかる Perl言語超入門
技術評論社 著者:高橋 順子
amazon.co.jpのカスタマーレビューを見る
powered by amalink
しばらく前にソースコードを
公開すると言ったまま、
公開していなかったPostedby(1.0)のソースコードを
公開しました。Postedbyは、HTMLタグを使用した表現力の高い記事を、Twitterのような文字数制限なしに、一般的...
しばらく前にソースコードを公開すると言ったまま、公開していなかったPostedby(1.0)のソースコードを公開しました。
Postedbyは、HTMLタグを使用した表現力の高い記事を、Twitterのような文字数制限なしに、一般的なブログより手軽に投稿ができるブログ(マイクロブログ)ツールです。
携帯にも対応しておリ携帯からの投稿や投稿の修正・削除も可能です。また、家族や知人、もしくは知らないどこかの誰かなどと複数ユーザーによる運営も可能です。
Postedbyの特徴
・記事の本文にHTMLタグの使用ができるため、表現力のある記事の作成ができる。
・投稿した記事は公開して共有できるだけでなく、ユーザー設定で非公開にすることもできる。
・ユーザーは任意の検索条件を設定したリストを作成することができる。
・投稿されたている記事に対して、リプライする形で新しい記事を投稿することができる。
・ブックマークレットを使用してブラウザで表示中のページを記事として簡単に投稿できる。
・id:記事ID、user:ユーザーIDで検索された場合、ユーザー設定のウィジェット(広告の設定も可能)を表示。
・携帯に対応、携帯電話からも記事の投稿、編集、削除ができる。
・日本語と英語に対応。
・商用利用、カスタマイズが可能なオープンソースライセンス(GPLv2)。
Postedby 1.0 のダウンロード
現時点では、「
メモる」との違いは、記事のタイトルを付けることができることと、本文にHTMLタグが使用できることくらいですが、本文にHTMLタグが使用できるのでよりブログに近い使い方ができると思います。
Postedby.org
シックス・アパートが、個人向け
無料ブログ・サービス「TypePad Micro(タイプパッド・マイクロ)」の提供を開始。「TypePad Micro」は、
ブログと「Twitter」のようなミニ
ブログの中間に位置づけられ、文字数の制限を...
シックス・アパートが、個人向け無料ブログ・サービス「TypePad Micro(タイプパッド・マイクロ)」の提供を開始。
「TypePad Micro」は、ブログと「Twitter」のようなミニブログの中間に位置づけられ、文字数の制限を意識せずに無料で気軽にブログが楽しめる。また、「Twitter」や「FriendFeed」などとも連携し、ユーザーが投稿を行うたびに、他のSNSアカウントに自動的に更新情報を通知することができる。
シックス・アパートが、ソーシャル機能を強化した無料ブログ・サービス「TypePad Micro」を提供開始
TypePad
「Bit.ly」は、ニュースサイトやブログの記事などの長い
URLを
短縮する
サービス。Twitterのように投稿できる文字数に制限がある
サービスで、リンクを紹介する際に必要な文字数を少なくするために利用されている。bit....
1 2 次へ >
アクセスランキング
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (40 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (8 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (5 PV)
- 無料のMT4向けナンピンマーチン爆益(爆損)EA「Jipangu(ジパング)」 (4 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (3 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (3 PV)
- [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (3 PV)
- 2chまとめサイト - 痛いニュース(ノ∀`) (3 PV)
- [FX]裁量ポジションの管理が簡単にできるMT4向け無料ツール(EA)「PositionKeeper」をバージョンアップ(Ver 1.03) (2 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (2 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (3273 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (488 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (91 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (89 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (70 PV)
- Million Dollar Ver 1.09向けの収益性を重視したゴールド(Gold、XAUUSD)ロングセットファイル (64 PV)
- 無料のMT4向けナンピンマーチン爆益(爆損)EA「Jipangu(ジパング)」 (62 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3 Ver 2.04」 #MT4 (59 PV)
- [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (51 PV)
- 2chまとめサイト - 痛いニュース(ノ∀`) (46 PV)
アクセス統計
ディレクトリ
関連サイト