C言語のお勉強ページに対するご意見・ご感想スレ
49:へなちょこ管理人 ★2009/07/03(金) 21:10:19
/*
文字列strの中に、文字cが含まれていれば(複数ある場合は、最も先頭側とする)、
その文字へのポインタを返し、含まれていなければNULLを返す関数
char *str_chr(const char *str, int c) {}
を作成せよ。
*/

#include <stdio.h>

char *str_chr(const char *str, int c)
{
while(*str){
if(*str == c)
return (char*)str;
str++;
}

return NULL;
}

int main(void)
{
char str[128];
int c;
char *p;

printf("文字列を入力してください:");
scanf("%s", str);
while(getchar() != '\n' );
printf("検索する文字を入力してください:");
scanf("%c", &c);

if( (p = str_chr(str, c)) == NULL )
printf("指定された文字は見つかりませんでした。\n");
else
printf("%cは%d文字目にありました。\n", c, p - &str[0] + 1);

return 0;
}
1-AA