#include <string.h> char *strstr(const char *str1, const char *str2) str1 : 文字列 str2 : 探索する文字列
#include <stdio.h> #include <string.h> int main() { long k; int i; char *pos; char *str = "xybaccakmccazabc"; printf("対象とする文字列 %s\n", str); /* 文字の探索 */ pos = strchr(str, 'a'); k = (long)pos - (long)str + 1; printf(" 文字の探索\n"); printf(" 文字 a は最初から %ld 文字目にあります\n", k); /* 文字の後方からの探索 */ pos = strrchr(str, 'a'); k = (long)pos - (long)str + 1; printf(" 文字の後方からの探索\n"); printf(" 文字 a は最初から %ld 文字目にあります\n", k); /* 文字群の中のどれかの文字の探索 */ pos = strpbrk(str, "uvwk"); k = (long)pos - (long)str + 1; printf(" 文字群「uvwk」に含まれる文字の探索\n"); printf(" 文字 %c が最初から %ld 文字目にあります\n", *pos, k); /* 文字列の探索 */ pos = strstr(str, "cc"); k = (long)pos - (long)str + 1; printf(" 文字列の探索\n"); printf(" 文字列 cc は最初から %ld 文字目にあります\n", k); /* 指定された文字群以外からなる文字列の長さ */ i = strcspn(str, "abc"); printf(" 文字群「abc」以外からなる文字列の長さ\n"); printf(" 最初から %d 文字目までに a,b,c の文字は含まれません\n", i); /* 指定された文字群からなる文字列の長さ */ i = strspn(str, "abcxy"); printf(" 文字群「abcxy」からなる文字列の長さ\n"); printf(" 最初から %d 文字目までが a,b,c,x,y でなっています\n", i); return 0; }
対象とする文字列 xybaccakmccazabc 文字の探索 文字 a は最初から 4 文字目にあります 文字の後方からの探索 文字 a は最初から 14 文字目にあります 文字群「uvwk」に含まれる文字の探索 文字 k が最初から 8 文字目にあります 文字列の探索 文字列 cc は最初から 5 文字目にあります 文字群「abc」以外からなる文字列の長さ 最初から 2 文字目までに a,b,c の文字は含まれません 文字群「abcxy」からなる文字列の長さ 最初から 7 文字目までが a,b,c,x,y でなっています
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |