演習11ー9
問: 文字列sの中に、文字cが含まれていれば、その文字(複数含まれている場合は、最も先頭側の文字)へのポインタを返し、含まれていなければ、空ポインタを返す関数を作成せよ。添字演算子[]を使わずに実現すること。
int *str_chr(const char *s, int c)
// Ex1109.c
#include <stdio.h>
#include <string.h>
#define NUMBER 128
void str_chr(const char *s, int c)
{
int len = strlen(s);
char *tmp = s;
int cnt = 0;
while (*s != c) {
*s++;
cnt++;
if (cnt == len) {
s = NULL;
break;
}
}
printf("文字列 \"%s\" の中にある、%c のポインタは %p です。\n", tmp, c, &*s);
}
int main(void)
{
char str[NUMBER];
char c;
printf("文字列を入力せよ:");
scanf("%s", str);
printf("探す文字を入力せよ:");
scanf("\n%c", &c);
str_chr(str, c);
return 0;
}
コメント
特になし。
書籍情報
コメント