2012年10月24日水曜日

開発環境

『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の13章(単純なポインタ)13.10(プログラミング実習)実習13-2を解いてみる。

実習13-2.

コード(TextWrangler)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char *f(char str[]);

int main(){
  char line[100];
  char *space_ptr;
  printf("文字列を入力: ");
  fgets(line, sizeof(line), stdin);
  line[strlen(line) - 1] = '\0';
  space_ptr = f(line);
  if(space_ptr == NULL){
    fprintf(stderr,
      "エラー: すべてスペース文字\n");
    exit (8);
  }
  printf("文字列中のスペース文字ではない最初の文字へのポインタ: %s\n", space_ptr);
  return (0);
}

char *f(char *str){
  char *str_ptr;
  str_ptr = str;
  while (1){
    if(*str_ptr == '\0'){
      return NULL;
    } else if(*str_ptr == ' '){
      str_ptr++;
    } else {
      break;
    }
  }
  return str_ptr;
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
文字列を入力: a
文字列中のスペース文字ではない最初の文字へのポインタ: a
$ ./sample
文字列を入力:    a
文字列中のスペース文字ではない最初の文字へのポインタ: a
$ ./sample
文字列を入力:      
エラー: すべてスペース文字
$

0 コメント:

コメントを投稿