(2005-04の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
文字列中から文字を探し、長さを得る
2005-04-21-4 / カテゴリ: [programming][c] / [permlink]
strspn(string, charset) / strcspn(string, charset) で
strcspn は、string の先頭から target 以外の文字のみの部分文字列の長さ。
Perl だと
#include <string.h> char string[] = "abcdefg"; char target[] = "def"; size_t len1, len2; len1 = strspn(string, target); len2 = strcspn(string, target);strspn は、string の先頭から target の文字のみの部分文字列の長さ。
strcspn は、string の先頭から target 以外の文字のみの部分文字列の長さ。
Perl だと
my $string = "abcdefg"; my $target = "def"; my ($len1, $len2); $len1 = length join "", ($string =~ /^([$target]*)/); $len2 = length join "", ($string =~ /^([^$target]*)/);ってコトかな? (うそっぽい)
文字列中から文字を探し、アドレスを得る
2005-04-21-3 / カテゴリ: [programming][c] / [permlink]
1文字探す場合は strchr(string, char), strrchr(string, char) で
strrchr は、最後のアドレスが入る(末尾から探す)
文字が見つからなかった場合は null になる。
複数文字のうちの1文字を探す(targetに複数文字を指定)場合は
char *strpbrk(string, charset)
見つからなければ null
#include <string.h> char string[] = "abcdefg"; char target = 'c'; char *p; p = strchr(string, target);p には、string 中の最初の c の位置のアドレスが入る
strrchr は、最後のアドレスが入る(末尾から探す)
文字が見つからなかった場合は null になる。
複数文字のうちの1文字を探す(targetに複数文字を指定)場合は
char *strpbrk(string, charset)
char string[] = "sample string"; char target[] = "aiueo"; char *p; p = strpbrk(string, target);p には "sample string" の先頭から、"aiueo" の中のどれか1文字が最初に見つかる、2文字目の "a" の位置のアドレスが入る。
見つからなければ null
文字列長の取得
2005-04-21-2 / カテゴリ: [programming][c] / [permlink]
strlen(string) を使う
#include <stdio.h> size_t strlen(const char *str);文字列を指すポインタを渡すと、文字数(size_t型)を返す
const で定数宣言
2005-04-21-1 / カテゴリ: [programming][c] / [permlink]
変数を const で修飾すると、read-only な変数になる。
Perl なら
厳密には「定数」というわけでなく、「読み出し専用」にするってこと。
const int i = 123; i = 456;コンパイルすると
strlen.c: In function `main': strlen.c:10: error: assignment of read-only variable `i'
Perl なら
use constant VALUE => 123;だ。
厳密には「定数」というわけでなく、「読み出し専用」にするってこと。
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12