何はともあれポインタ

研修でC言語を使用しないといけないので、C言語の勉強中。


ポインタの使い方に慣れようとしているところです。。。


文字列検索に使うstrstr()的な関数で考えてみる。

char *strstr_dummy(char *buf, char *target) {
  int i, j, judge;
  int buf_len = strlen(buf);
  int target_len = strlen(target);

  for(i = 0; i < buf_len; i++) {
    if(buf[i] == target[0]) {
      judge = 1;
      for(j = 1; j < target_len; j++) {
        if(buf[i + j] != target[j]) {
          judge = 0;
          break;
      }
      if(judge == 1) {
        return buf + 1;
      }
    }
  }
  return NULL;
}

ポインタで渡してるけど、配列と同じ感覚がする。
ポインタをプラスすると、charプラス分先に移動する。


ということはもう、ポインタは配列として見てオッケー?ってことなのかな。
うーん、難しい。