(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-5 / カテゴリ: [programming][c] / [permlink]

/usr/include
です。

文字列中から文字を探し、長さを得る
2005-04-21-4 / カテゴリ: [programming][c] / [permlink]

strspn(string, charset) / strcspn(string, charset) で
#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) で
#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 な変数になる。
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;
だ。

厳密には「定数」というわけでなく、「読み出し専用」にするってこと。
前の日 / 次の日 / 最新 / 2005-04

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