『新・明解C言語 入門編 第2版』演習問題解答例 11ー9

演習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;
}

コメント

 特になし。

 


書籍情報


コメント

タイトルとURLをコピーしました