次のエントリ: zshを使ってコマンドを指定回数連続実行 [shell]
文字列を指定文字(デリミタ)で区切って、部分文字列のアドレスを得る
2005-04-22-1 / カテゴリ: [programming][c] / [permlink]
strtok(string, charset)
コール時に前回のポインタを記憶しているので、NULL になるまで複数回実行すれば、対象文字列をバラせる。
便利だけど、そろそろ Perl でやりたくなってきた。
#include <string.h> char string[] = "name, title, date, value\n"; char delim[] = ", \r\n"; char *token; printf("[%s] (%p)\n", string, string); printf("----\n"); token = strtok(string, delim); while (token != NULL) { printf("[%s] (%p)\n", token, token); token = strtok(NULL, delim); }出力は
[name, title, date, value ] (0x22efa0) ---- [name] (0x22efa0) [title] (0x22efa6) [date] (0x22efad) [value] (0x22efb3)コールするたびに、デリミタで指定した文字セット以外が連続する文字列の末尾に '\0' をいれ、先頭のポインタを返す。(よって string は壊れる)
コール時に前回のポインタを記憶しているので、NULL になるまで複数回実行すれば、対象文字列をバラせる。
便利だけど、そろそろ Perl でやりたくなってきた。
次のエントリ: zshを使ってコマンドを指定回数連続実行 [shell]
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