開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- C (プログラミング言語)
- Clang (コンパイラ)
C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の13章(単純なポインタ)、13.1(ポインタ)、13.2(関数引数としてのポインタ)、13.3(constポインタ)、13.4(ポインタと配列)、13.5(ポインタを使用しない方法)、13.6(ポインタを使用した文字列分割)、13.6(ポインタを使用した文字列分割)、13.7(ポインタと構造体)、13.8(コマンド業引数)、13.10(プログラミング実習)、実習 13-2を解いてみる。
その他参考書籍
- プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)
- プログラミング言語Cアンサー・ブック 第2版 (クロビス・L.トンド、スコット・E.ギンペル(著)、矢吹 道郎(翻訳))
実習13-2.
コード
sample.c
#include <stdio.h>
int main()
{
int size = 5;
char* str_array[] = {
" c ",
"dart",
" haskell ",
" python ",
" "
};
char * first(char *s);
int i;
for (i = 0; i < size; i++){
char *str_ptr = str_array[i];
printf("文字列: %s\n", str_ptr);
char *c_ptr = first(str_ptr);
printf("文字列中のスペース文字でない最初の文字へのポインタ: 0x%x\n",
(int) c_ptr);
printf("文字: %c\n", *c_ptr);
}
return (0);
}
char * first(char *s)
{
while (*s == ' '){
s++;
}
return &(*s);
}
makefile
CC=cc CFLAGS=-g sample: sample.c $(CC) $(CFLAGS) -o sample sample.c clean: rm -f sample
入出力結果(Terminal)
$ ./sample 文字列: c 文字列中のスペース文字でない最初の文字へのポインタ: 0x43af09 文字: c 文字列: dart 文字列中のスペース文字でない最初の文字へのポインタ: 0x43af0d 文字: d 文字列: haskell 文字列中のスペース文字でない最初の文字へのポインタ: 0x43af13 文字: h 文字列: python 文字列中のスペース文字でない最初の文字へのポインタ: 0x43af1f 文字: p 文字列: 文字列中のスペース文字でない最初の文字へのポインタ: 0x43af2c 文字: $
0 コメント:
コメントを投稿