(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) で
strspn は、string の先頭から target の文字のみの部分文字列の長さ。
strcspn は、string の先頭から target 以外の文字のみの部分文字列の長さ。
Perl だと
ってコトかな? (うそっぽい)
1 2 3 4 5 6 7 8 | #include <string.h> char string[] = "abcdefg" ; char target[] = "def" ; size_t len1, len2; len1 = strspn (string, target); len2 = strcspn (string, target); |
strcspn は、string の先頭から target 以外の文字のみの部分文字列の長さ。
Perl だと
1 2 3 4 5 6 | 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) で
p には、string 中の最初の c の位置のアドレスが入る
strrchr は、最後のアドレスが入る(末尾から探す)
文字が見つからなかった場合は null になる。
複数文字のうちの1文字を探す(targetに複数文字を指定)場合は
char *strpbrk(string, charset)
p には "sample string" の先頭から、"aiueo" の中のどれか1文字が最初に見つかる、2文字目の "a" の位置のアドレスが入る。
見つからなければ null
1 2 3 4 5 6 7 | #include <string.h> char string[] = "abcdefg" ; char target = 'c' ; char *p; p = strchr (string, target); |
strrchr は、最後のアドレスが入る(末尾から探す)
文字が見つからなかった場合は null になる。
複数文字のうちの1文字を探す(targetに複数文字を指定)場合は
char *strpbrk(string, charset)
1 2 3 4 5 | char string[] = "sample string" ; char target[] = "aiueo" ; char *p; p = strpbrk (string, target); |
見つからなければ null
[
コメント ]
文字列長の取得
2005-04-21-2 / カテゴリ: [programming][c] / [permlink]
strlen(string) を使う
文字列を指すポインタを渡すと、文字数(size_t型)を返す
1 2 | #include <stdio.h> size_t strlen ( const char *str); |
[
コメント ]
const で定数宣言
2005-04-21-1 / カテゴリ: [programming][c] / [permlink]
変数を const で修飾すると、read-only な変数になる。
コンパイルすると
Perl なら
だ。
厳密には「定数」というわけでなく、「読み出し専用」にするってこと。
1 2 | const int i = 123; i = 456; |
1 2 | strlen.c: In function `main': strlen.c:10: error: assignment of read-only variable `i' |
Perl なら
1 | 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