강좌 & 팁
C언어 - 문자열을 다루는 배열
문자열의 배열을 2차원 배열로 구성해본다
예제
#include <stdio.h>
#include <string.h>
#define MAXSTD 5
#define NAMELEN 15
int main(){
int i, yes = 0;
char name[NAMELEN];
char student[MAXSTD][NAMELEN] = {"Michael Bolton", "Richard Marx", "Ricky Martin", "Celine Dion", "Cutting Crew"};
for(i = 0; i < MAXSTD; i++){
printf("%p \t%s\n", student[i], student[i]);
}
printf("Enter student name : ");
gets(name);
//student[i]는 각 이름의 주소를 가지고 있다
for(i=0; i < MAXSTD; i++){
if(strcmp (student[i], name) == 0) yes = 1;
}
if(yes){
printf("YES, %s is a student in CS department\n",name);
}else{
printF("NO %s is not a student in CS department\n",name);
}
}
이 프로그램 에서는 2차원 배열을 이용하여 문자열의 배열을 만들었다. 선언에서 초기화된 배열 student의 메모리 할당과 값은 다음과 같다
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
student[0] |
1000 |
M |
i |
c |
h |
a |
e |
l |
|
B |
o |
l |
t |
o |
n |
\0 |
student[1] |
1015 |
R |
i |
c |
h |
a |
r |
d |
|
M |
a |
r |
x |
\0 |
|
|
student[2] |
1030 |
R |
i |
c |
k |
y |
|
M |
a |
r |
t |
i |
n |
\0 |
|
|
student[3] |
1045 |
C |
e |
l |
i |
n |
e |
|
D |
i |
o |
n |
\n |
|
|
|
student[4] |
1060 |
C |
u |
t |
t |
i |
n |
g |
|
C |
r |
e |
w |
\0 |
|
|