スライド 1

アルゴリズムとデータ構造
補足資料5-3
「サンプルプログラムstrcat.c」
横浜国立大学
理工学部
数物・電子情報系学科
富井尚志
サンプルプログラム: strcat.c
文字列の扱い
•文字列はchar型の配列
•文字列の終端は’\0’
•文字列を結合する場合は、配列の要素一つ一つを転送する。
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
\0
?
?
?
?
?
?
+
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
o
r
l
d
.
\0
i=
6
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
\0
?
?
?
?
?
?
j=
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
0
i=
6
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
?
?
?
?
?
?
s[i] = t[j]
j=
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
0
i=
7
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
?
?
?
?
?
?
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
j=
1
i=
7
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
o
?
?
?
?
?
s[i] = t[j]
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
j=
1
i=
8
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
o
r
?
?
?
?
s[i++] = t[j++]
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
j=
2
i=
9
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
o
r
l
?
?
?
s[i++] = t[j++]
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
j=
3
i=
10
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
o
r
l
d
?
?
s[i++] = t[j++]
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
j=
4
i=
11
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
o
r
l
d
.
?
s[i++] = t[j++]
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
j=
5
i=
12
s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
s[7]
s[8]
s[9]
s[10]
s[11]
s[12]
H
e
l
l
o
,
w
o
r
l
d
.
\0
(s[i++] = t[j++])!=‘\0’
False!
t[0]
t[1]
t[2]
t[3]
t[4]
t[5]
t[6]
w
o
r
l
d
.
\0
j=
6