strtok

[機能]

  文字列を与えられた区切り文字で区切って返します.最初に呼び出されると,文字列中の区切り文字で区切られた最初の文字列へのポインタを返します.その後,同じ文字列に対し strtok 関数を使用すると,文字列中の次の区切り文字で区切られた文字列に対するポインタを返します.ただし,この場合,文字列に NULL ポインタを指定してやる必要があります.それ以上の文字列が存在しないときは,NULL ポインタを返します.strtok 関数は,呼び出される度に区切り文字の前に NULL 文字( '\0' )が挿入され,文字列は変更される点に注意してください.

[形式]
#include <string.h>

char *strtok(char *str1, const char *str2)
	str1 : 文字列
	str2 : 区切り文字群		
[使用例]

  1. 区切り文字 'a','b',または,'\n' によって文字列を分離します
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	int i1;
    	char *pos, str1[50];
    	char *str;
    
    	i1 = 1;
    	strcpy(str1, "xyzbkxyaawwww\nccccc");
    	str = &str1[0];
    
    	printf("文字列 xyzbkxyaawwww\\nccccc を文字a,b,または,\\nで区切ります\n");
    	while ((pos = strtok(str, "ab\n")) != NULL) {
    		printf("   %d 番目の文字列は %s\n", i1, pos);
    		str = NULL;
    		i1++;
    	}
    
    	return 0;
    }
    			
    (出力)
    文字列 xyzbkxyaawwww\nccccc を文字a,b,または,\nで区切ります
       1 番目の文字列は xyz
       2 番目の文字列は kxy
       3 番目の文字列は wwww
       4 番目の文字列は ccccc			
[参照]

strlen

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引