- 사전에서 임의로 단어를 선택한 후, 단어 길이만큼 *로 보여준다.
그 단어를 예측하여 문자를 넣어 단어를 맞춘다.
만약 입력한 문자가 해당 단어에 없는 경우 교수형이 진행된다.
전역변수 사용
지역변수(local variable)
해당 함수 내부에서 선언되고 그 함수에서만 사용할 수 있는 변수를 의미한다.
주소값을 인자값으로 넘기는 것으로 간접적으로 지역변수를 사용할 수 있다.
여러 함수가 공유하는 변수를 만드는 또 다른 법은 전역 변수 (global variable)을 선언하고 사용하는 것이다.
함수들이 기술되기 전 가장 앞에 선언하면 된다.
전역변수용 접두어 g_ (그냥 표기용)
int g_a=10; 전역변수 a(선언과 동시에 10으로 초기화)
|
장점 |
단점 |
전역변수 |
사용하기가 편하다 |
보안이 낮아 버그 발생 비율이 높다 |
지역변수 |
보안이 높아 버그 발생 비율이 낮다 |
사용하기 까다롭다 |
문자와 문자열
특수문자
\n 줄변경
\t 탭만큼 공백 추가
\0 문자열 종료(NULL Terminal)
문자열은 문자의 연속적인 나열을 의미한다.
\0을 마지막에 배치한다.
char msg[5]={"1234"}; //\0가 마지막이므로 최대 4자까지만 사용할 수 있다.
문자의 상수 값은 'a'로 표시
문자열의 상수 값은 "abc"로 표시
문자열 초기화 시
1. 선언과 동시에 초기화 하는 방법
2. 문자열을 복사하여 초기화 (strcpy())
char msg[6] = "haha"; // h a h a \0으로 구성됨
char msg[10];
msg = "haha"; <= 불가능
strcpy(msg,"haha"); // h a h a \0으로 구성됨
char msg[10]
msg[0]='h';
msg[1]='a';
문자열을 다루는 함수를 사용하려면
#include <string.h> 잊지 말 것!
문자열의 입출력
scanf("%s",msg); //문자열 입력
printf("msg:%s\n",msg); //문자열 출력
printf(" 0:%c 1:\n",msg[0],msg[1]); //문자 출력
%s = 문자열
%c = 문자
strcpy() => 문자열 복사
strlen() => 문자열의 길이
strcpy(msg2,msg1); //msg1의 내용을 msg2로 복사하라.
len=strlen(msg1);
문자열의 비교
strcmp() <= 함수를 이용해 완전히 일치하는지 확인해야 함
strncmp() <= 몇개만 비교해줌
if(0== strncmp(temp,"haha",3)) //"hah"까지만 비교함(3개만)
switch문
int a;
...
switch(a)
{
case 0:
k=0;
break;
case 1:
...
default:
...
break;
}
특수문자 입력하기
2차원 배열
가로와 세로의 조합
행을 먼저, 열을 나중에
int data[2][3]; //2행 3열짜리 표
여러 문자열 다루기
char형 2차원 배열
//한 단어의 최대 길이는 9('\0' 포함해서 10), 단어의 총 개수는 2개로 선언한 경우.
char words[2][10]={
"mother",
"sun"
};