開発環境
- OS X Lion - Apple(OS)
- Emacs、BBEdit - Bare Bones Software, Inc. (Text Editor)
- プログラミング言語: C
- Clang (コンパイラ)
プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)の第5章(ポインタと配列)、5.3(ポインタと配列)、5.4(アドレス計算)、5.5(文字ポインタと関数)、演習5-4を解いてみる。
その他参考書籍
- プログラミング言語Cアンサー・ブック 第2版 (クロビス・L.トンド、スコット・E.ギンペル(著)、矢吹 道郎(翻訳))
演習 5-4.
コード
sample.c
#include <stdio.h>
#define MAXSIZE 1000
int main()
{
int strend(char *, char *);
char s1[MAXSIZE] = "program";
char s2[MAXSIZE] = "programming";
char s3[MAXSIZE] = "programmer";
char s4[MAXSIZE] = "ing";
char s5[MAXSIZE] = "er";
char s6[MAXSIZE] = "python programmer";
char s7[MAXSIZE] = "";
printf("%s %s %d\n", s1, s4, strend(s1, s4));
printf("%s %s %d\n", s1, s5, strend(s1, s5));
printf("%s %s %d\n", s2, s4, strend(s2, s4));
printf("%s %s %d\n", s2, s5, strend(s2, s5));
printf("%s %s %d\n", s3, s4, strend(s3, s4));
printf("%s %s %d\n", s3, s5, strend(s3, s5));
printf("'%s' '%s' %d\n", s3, s6, strend(s3, s6));
printf("%s %s %d\n", s1, s1, strend(s1, s1));
printf("'%s' '%s' %d\n", s7, s7, strend(s7, s7));
printf("'%s' '%s' %d\n", s1, s7, strend(s1, s7));
printf("'%s' '%s' %d\n", s7, s1, strend(s7, s1));
return 0;
}
int strend(char *s, char *t)
{
char *u;
char *v;
u = s;
v = t;
while (*s != '\0') {
s++;
}
while (*t != '\0') {
t++;
}
while (*s == *t && s >= u && t >= v) {
if (t == v) {
return 1;
}
s--;
t--;
}
return 0;
}
入出力結果(Terminal)
$ ./a.out program ing 0 program er 0 programming ing 1 programming er 0 programmer ing 0 programmer er 1 'programmer' 'python programmer' 0 program program 1 '' '' 1 'program' '' 1 '' 'program' 0 $
0 コメント:
コメントを投稿