開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の9章(変数スコープおよび関数)9.3(パラメータをとらない関数)設問9-1を解いてみる。
設問9-1.
return文がforループのブロックに含まれてるから。(セミコロン、あるいは中括弧が抜けてる。)
修正
セミコロン追加バージョン
コード(TextWrangler)
#include <stdio.h>
int length(char string[]){
int index;
for(index = 0; string[index] != '\0'; ++index);
return (index);
}
int main(){
char line[100];
while(1){
printf("Enter line:");
fgets(line,sizeof(line),stdin);
printf("Length (including newline) is: %d\n",
length(line));
}
return (0);
}
中括弧追加バージョン
コード(TextWrangler)
#include <stdio.h>
int length(char string[]){
int index;
for(index = 0; string[index] != '\0'; ++index){
/* 何もしない */
}
return (index);
}
int main(){
char line[100];
while(1){
printf("Enter line:");
fgets(line,sizeof(line),stdin);
printf("Length (including newline) is: %d\n",
length(line));
}
return (0);
}
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample Enter line:kamimura Length (including newline) is: 9 Enter line:12345 Length (including newline) is: 6 Enter line:^C $ cc -g -o sample sample.c $ ./sample Enter line:kamimura Length (including newline) is: 9 Enter line:12345 Length (including newline) is: 6 Enter line:^C $
0 コメント:
コメントを投稿