7.행맨

- 사전에서 임의로 단어를 선택한 후, 단어 길이만큼 *로 보여준다.

그 단어를 예측하여 문자를 넣어 단어를 맞춘다.

만약 입력한 문자가 해당 단어에 없는 경우 교수형이 진행된다.

 

전역변수 사용

 

지역변수(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"

};