서브메뉴

본문

초보자를 위한 C 언어 300제 (C프로그래밍 시작을 위한 최고의 입문서)
초보자를 위한 C 언어 300제 (C프로그래밍 시작을 위한 최고의 입문서)
저자 : 김은철
출판사 : 정보문화사
출판년 : 2013
ISBN : 9788956745848

책소개

C 프로그래밍 시작을 위한 입문서 『C언어 300제』. C 프로그래밍을 시작하는 방법, 변수/상수의 선언, 포인터, 구조체 등의 기본적인 내용을 다루어 기초를 쌓을 수 있다. 실무 등에서도 참고할 수 있도록 파일 입출력, 문자열 처리 등 각종 런타임 함수도 예제 중심으로 소개한다. 또한, C 언어를 사용한 네트워크(TCP/IP) 프로그래밍으로 미니 메신저 기능도 만들어볼 수 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

C 프로그래밍 시작을 위한 최고의 입문서!

보다 빠르고 효율적인 소프트웨어를 개발하기 위해 새로운 프로그래밍 언어가 쏟아져 나오고 있습니다. 이러한 급변하는 상황 속에서도 오랜 역사를 가진 C 언어가 변함없이 각광받는 이유는 C 언어를 알면 다른 언어 또한 쉽게 배울 수 있기 때문입니다. 흔히 C 언어를 ‘기본’이라 말하는 것도 바로 이런 이유입니다.

이 책은 지루한 문법 설명이 아닌 C의 핵심 개념(변수, 상수, 연산자, 조건/순환문, 포인터, 함수 등)을 300가지의 실무 예제를 통해 설명하고 있습니다. 예제는 파트별로 입문 10가지, 초급 40가지, 중급 150가지, 활용 80가지, 실무 20가지로 나뉘어 있으며, 각 단계를 따라하는 것만으로도 실력을 다질 수 있습니다. 아울러 수준별로 원하는 부분을 쉽게 발췌해서 볼 수 있도록 구성했습니다.

이 책의 특징
▶ 실무 중심의 예제를 통한 개념 이해
▶ 누구나 한 번쯤 겪는 C 프로그래밍의 함정 중점 분석
▶ 어려운 포인터, 쉽게 따라잡기
▶ TCP/IP 프로그래밍을 통해 고급 프로그래머로 입문
▶ 네이버 카페를 통한 동영상 강의 및 온라인/오프라인 교육 제공

이 책의 주요 주제들
▶ 변수/상수/연산자
▶ 연산자/조건문/순환문
▶ 문자열/포인터/함수
▶ 매크로/배열/포인터
▶ 문자열 처리/파일 처리/시간 처리/수학 함수
▶ 게임 프로그래밍/정보처리기사 문제 풀이
▶ 채팅 프로그래밍(TCP/IP)/메일과 웹 서버, 통신(TCP/IP)
[교보문고에서 제공한 정보입니다.]

목차정보

PART 1. 입문 - 오늘부터 나는 C 프로그래머 !
1. C 프로그램 시작하기
2. 변수형 개념 배우기
3. 상수형 개념 배우기
4. 연산자 개념 배우기
5. 조건문 개념 배우기(if∼else)
6. 순환문 개념 배우기(for)
7. 문자열 개념 배우기
8. 함수 개념 배우기
9. 주석 개념 배우기
10. 컴파일 개념 배우기

PART 2. 초급 - C 프로그래밍 기초 다지기
11. 문자형 변수 이해하기(char)
12. 정수형 변수 이해하기(int)
13. 실수형 변수 이해하기(double)
14. 논리형 변수 이해하기(bool)
15. 문자열형 변수 이해하기(char*)
16. 문자형 상수 이해하기(char)
17. 정수형 상수 이해하기(int)
18. 실수형 상수 이해하기(double)
19. 논리형 상수 이해하기(bool)
20. 문자열형 상수 이해하기(char*)
21. 대입 연산자 이해하기(=)
22. 사칙 연산자 이해하기(+, -, *, /)
23. 부호 연산자 이해하기(+, -)
24. 증감 연산자 이해하기(++, --)
25. 관계 연산자 이해하기(, ==, =, , !=)
26. 논리 연산자 이해하기(||, &&, !)
27. 조건 연산자 이해하기(? :)
28. 쉼표 연산자 이해하기(,)
29. 비트 연산자 이해하기(|, &, ~, ^, >)
30. 캐스트 연산자 이해하기
31. sizeof 연산자 이해하기
32. 중첩 조건문 이해하기(if∼else)
33. 중첩 순환문 이해하기(for∼continue∼break)
34. 조건 선택문 이해하기(switch∼case∼default)
35. 조건 순환문 이해하기 1(while∼continue∼break)
36. 조건 순환문 이해하기 2(do while∼continue∼break)
37. 무조건 분기문 이해하기(goto)
38. 문자열 이해하기
39. 배열 이해하기
40. 메모리 이해하기
41. 포인터 이해하기
42. 널문자 이해하기
43. 구조체 이해하기
44. 공용체 이해하기
45. 열거형 이해하기
46. 데이터형 정의하기
47. 함수와 인수 이해하기
48. 변수의 범위 이해하기
49. #include 문 이해하기
50. 매크로 이해하기

PART 3. 중급 - C 프로그래밍 레디! 고!
51. 문자 입력받기(getch)
52. 문자 출력하기(putch)
53. 정수값 입력받기(scanf)
54. 정수값 출력하기(printf)
55. 문자열 입력받기(gets)
56. 문자열 출력하기(puts)
57. 문자열 복사하기(strcpy)
58. 문자열을 복사하는 함수 만들기
59. 문자열을 대·소문자로 구분하여 비교하기(strcmp)
60. 문자열을 비교하는 함수 만들기
61. 문자열을 대·소문자로 구분하여 일정 크기만큼 비교하기(strncmp)
62. 문자열 연결하기(strcat)
63. 문자열 길이 구하기(strlen)
64. 문자열 검색하기(strstr)
65. 문자열 중에서 문자 검색하기(strchr)
66. 문자열 중에서 일치되는 첫 문자의 위치 구하기(strcspn)
67. 문자열 중에서 일치되지 않는 첫 문자의 위치 구하기(strspn)
68. 문자열을 구분자로 분리하기 1(strtok)
69. 문자열을 구분자로 분리하기 2(strpbrk)
70. 문자열을 특정 문자로 채우기(strset)
71. 문자열을 일정 부분만 특정 문자로 채우기(strnset)
72. 문자열을 대문자로 변환하기(strupr)
73. 문자열을 소문자로 변환하기(strlwr)
74. 문자열을 거꾸로 뒤집기(strrev)
75. 문자열을 중복 생성하기(strdup)
76. 문자열을 형식화하기(sprintf)
77. 문자열을 정수로 변환하기 1(atoi)
78. 문자열을 정수로 변환하기 2(atol)
79. 문자열을 정수로 변환하기 3(strtol)
80. 문자열을 정수로 변환하기 4(strtoul)
81. 문자열을 실수로 변환하기 1(atof)
82. 문자열을 실수로 변환하기 2(strtod)
83. 정수를 문자열로 변환하기 1(itoa)
84. 정수를 문자열로 변환하기 2(ltoa)
85. 정수를 문자열로 변환하기 3(ultoa)
86. 실수를 문자열로 변환하기 1(fcvt)
87. 실수를 문자열로 변환하기 2(ecvt)
88. 실수를 문자열로 변환하기 3(gcvt)
89. 문자가 알파벳인지 검사하기(isalpha)
90. 문자가 숫자인지 검사하기(isdigit)
91. 문자가 알파벳 또는 숫자인지 검사하기(isalnum)
92. 문자가 대문자인지 검사하기(isupper)
93. 문자가 소문자인지 검사하기(islower)
94. 문자가 공백, 탭문자 또는 개행문자인지 검사하기(isspace)
95. 문자열에서 앞뒤 2바이트씩 교환하기(swab)
96. 메모리 할당하기(malloc)
97. 메모리를 블록 단위로 할당하기(calloc)
98. 메모리 해제하기(free)
99. 메모리 재할당하기(realloc)
100. 메모리 복사하기(memcpy)
101. 메모리 비교하기(memcmp)
102. 메모리 이동하기(memmove)
103. 메모리 채우기(memset)
104. 메모리를 복사하는 함수 만들기
105. 메모리를 이동하는 함수 만들기
106. 포인터 사용하기
107. 포인터를 함수에서 사용하기
108. 포인터 배열 사용하기
109. 포인터 배열을 함수에서 사용하기
110. 1차원 배열 사용하기
111. 1차원 배열의 포인터 사용하기
112. 1차원 배열을 함수에서 사용하기
113. 2차원 배열 사용하기
114. 2차원 배열의 포인터 사용하기
115. 2차원 배열을 함수에서 사용하기
116. 3차원 배열 사용하기
117. 3차원 배열의 포인터 사용하기
118. 3차원 배열을 함수에서 사용하기
119. 구조체 사용하기
120. 구조체 포인터 사용하기
121. 구조체 함수에서 사용하기
122. 구조체 배열 사용하기
123. 구조체 배열의 포인터 사용하기
124. 구조체 배열을 함수에서 사용하기
125. 구조체의 길이를 구하고 초기화하기
126. 공용체 사용하기
127. 공용체를 함수에서 사용하기
128. void형 포인터 사용하기
129. void형 포인터를 함수에서 사용하기
130. 포인터의 포인터 사용하기
131. 포인터의 포인터를 함수에서 사용하기
132. 함수 포인터 사용하기
133. 함수 포인터 배열 사용하기
134. 함수 포인터를 함수에서 사용하기
135. main() 함수 원형 사용하기
136. 파일 생성하기(fopen)
137. 파일에 한 문자 쓰기(fputc)
138. 파일에서 한 문자 읽기(fgetc)
139. 파일에 문자열 쓰기(fputs)
140. 파일에서 문자열 읽기(fgets)
141. 파일에 문자열 형식화된 쓰기(fprintf)
142. 파일에서 형식화된 문자열 읽기(fscanf)
143. 파일의 버퍼 비우기(fflush)
144. 파일 포인터의 현재 위치 구하기 1(ftell)
145. 파일 포인터를 처음으로 이동하기 1(fseek)
146. 파일 포인터를 처음으로 이동하기 2(rewind)
147. 파일 포인터를 끝으로 이동하기(fseek)
148. 파일 포인터를 임의의 위치로 이동하기(fseek)
149. 파일의 길이 구하기(fseek)
150. 파일 포인터의 현재 위치 구하기 2(fgetpos)
151. 파일 포인터의 현재 위치 설정하기(fsetpos)
152. 파일 닫기(fclose)
153. 파일의 끝에 도달했는지 검사하기(feof)
154. 파일 읽기/쓰기 시 에러 검사하기(ferror)
155. 파일 처리 시 발생된 에러 출력하기(perror)
156. 임시 파일 이름 만들기(tmpnam)
157. 파일이 존재하는지 확인하기(_access)
158. 파일 이름 변경하기(rename)
159. 파일 속성 변경하기(_chmod)
160. 파일 삭제하기(remove)
161. 디렉터리 생성하기(_mkdir)
162. 디렉터리 삭제하기(_rmdir)
163. 현재 작업중인 디렉터리 구하기(_getcwd)
164. 현재 작업중인 디렉터리 변경하기(_chdir)
165. 현재 작업중인 드라이브 구하기(_getdrive)
166. 현재 작업중인 드라이브를 변경하기(_chdrive)
167. 표준 입출력 스트림(stdin, stdout)
168. 현재까지 경과된 초의 수 구하기(time)
169. 현재 날짜 및 시간 구하기 1(localtime)
170. 현재 날짜 및 시간 구하기 2(_ftime)
171. 세계 표준시 구하기(gmtime)
172. 날짜 및 시간을 문자열로 변환하기(ctime)
173. 날짜 및 시간을 더하거나 빼기(mktime)
174. 날짜 및 시간의 차이 구하기(difftime)
175. 날짜 및 시간을 미국식으로 변환하기(asctime)
176. 날짜 및 시간을 형식화하기(strftime)
177. 삼각 함수 싸인 값을 구하기(sin)
178. 삼각 함수 아크 싸인 값을 구하기(asin)
179. 삼각 함수 x/y에 대한 아크 탄젠트 값 구하기(atan2)
180. 지수 함수 지수값 구하기(exp)
181. 로그 함수 자연 로그값 구하기(log)
182. 로그 함수 밑수를 10으로 하는 로그값 구하기(log10)
183. 제곱근 구하기(sqrt)
184. 절대값 구하기(abs)
185. 주어진 값보다 작지 않은 최소 정수값 구하기(ceil)
186. 주어진 값보다 크지 않은 최대의 정수값 구하기(floor)
187. 주어진 값을 정수와 소수로 분리하기(modf)
188. x의 y승을 구하기
189. 난수 구하기(srand, rand)
190. 정렬 함수 사용하기(sort)
191. 이진 검색 사용하기(bsearch)
192. 매크로 상수 정의하기
193. 매크로 함수 정의하기 1
194. 매크로 함수 정의하기 2
195. 매크로 상수가 선언되었는지 검사하기
196. 매크로 컴파일 에러 출력하기
197. 매크로 상수의 값을 검사하기
198. 매크로 상수의 선언을 취소하기
199. 경고 에러를 발생시키지 않기
200. 내장된 매크로 사용하기

PART 4. 활용 - C를 말하다
201. scanf 함수 100% 활용하기(scanf)
202. printf 함수 100% 활용하기(printf)
203. 정수값을 2진수 문자열로 변환하기(_itoa)
204. 정수값을 8진수 문자열로 변환하기(_itoa)
205. 정수값을 16진수 문자열로 변환하기(_itoa)
206. 2진수 문자열을 정수값으로 변환하기(strtol)
207. 8진수 문자열을 정수값으로 변환하기(strtol)
208. 16진수 문자열을 정수값으로 변환하기(strtol)
209. 2진수 문자열을 16진수 문자열로 변환하기(strtol, _itoa)
210. 16진수 문자열을 2진수 문자열로 변환하기(strtol, _itoa)
211. 비트 연산을 사용하여 소문자를 대문자로 변환하기(& 0x10111111)
212. 비트 연산을 사용하여 비트값 반전하기(^)
213. 비트 쉬프트 연산을 사용하여 곱셈 구현하기(<<)
214. 비트 쉬프트 연산을 사용하여 나눗셈 구현하기(>>)
215. 문자열에서 특정 문자열의 위치값을 정수로 구하기(strstr)
216. 문자열을 콤마로 분리하여 여러 개의 문자열로 만들기(strtok)
217. 문자열을 공백으로 분리하여 여러 개의 문자열로 만들기(strtok)
218. 문자열에서 숫자만 추출해내기(isdigit)
219. 문자열에서 알파벳만 추출해내기(isalpha)
220. 문자열에서 한글만 추출해내기(응용)
221. 문자열에서 특정 문자들이 있는 곳 까지만 추출하기(strspn)
222. 문자열에서 특정 문자들이 있지 않은 곳 까지만 추출하기(strcspn)
223. 문자열을 특정 문자 위치에서 잘라내기(strchr, strrchr)
224. 문자열의 좌우 공백 제거하기(isspace)
225. 문자열의 좌우 특정 문자들 제거하기(if, _strcup, strcpy)
226. 문자열을 널로 채우기(strset)
227. 문자열을 특정 문자로 채우기(strset)
228. 문자열에서 특정 위치의 문자들을 다른 문자로 교체하기(strset)
229. 문자열에 대한 임시 저장소 만들기(_strdup)
230. 메모리를 1M 바이트 할당하고 해제하기(malloc, free)
231. 메모리를 10M 바이트 할당하고 해제하기(malloc, free)
232. void형 포인터를 사용한 다양한 배열 복사하기(배열, 포인터)
233. 텍스트 파일을 한 줄씩 쓰기(fopen, fclose)
234. 텍스트 파일을 한 줄씩 읽기(fopen, fgets)
235. 텍스트 파일 쓰기(fwrite)
236. 텍스트 파일 읽기(fread)
237. 이진 파일 쓰기(fwrite)
238. 이진 파일 읽기(fread)
239. 파일을 다른 디렉터리로 이동하기(rename)
240. 파일 복사하기(fread, fwrite)
241. 파일 합치기(fread, fwrite)
242. 파일에서 특정 문자열 검색하기(fopen, fread, fclose, strstr)
243. 파일에서 특정 문자열 교체하기
244. 년/월/일 시:분:초 출력하기(time, localtime)
245. 출생일로부터 오늘까지의 경과일 수 구하기
246. 각 달의 마지막 날짜 구하기
247. D-Day 구하기
248. 오늘 날짜로부터 크리스마스까지의 남은 시간 구하기
249. 오늘 날짜에 임의의 날짜 더하고 빼기
250. 작년 크리스마스의 요일 구하기
251. 세계 표준시와 국내 표준시의 시간차 구하기(localtime)
252. 5초간 지연하는 함수 구현하기(clock)
253. 두 시간간의 차이 구하기(maketime)
254. 두 날짜간의 차이 구하기
255. 올해의 경과된 날짜수 구하기(localtime)
256. 올해의 경과된 주의수 구하기(strftime)
257. 오늘의 요일 구하기
258. 오전/오후 표시하기
259. AM/PM 표시하기
260. 문자열로 된 날짜를 time_t 형식으로 변환하기(atoi, mktime)
261. 문자열로 된 날짜를 struct tm 형식으로 변환하기
262. 날짜 및 시간을 다양한 방법으로 출력하기(_ftime)
263. 가위바위보 게임 만들기(응용)
264. 야구 게임 만들기(응용)
265. 스택 구현하기(포인터)
266. 큐 구현하기(포인터)
267. 단일 링크드 리스트 구현하기(구조체, 포인터)
268. 이중 링크드 리스트 구현하기(구조체, 포인터)
269. 주소록 입력 프로그램 구현하기
270. 주소록 출력 프로그램 구현하기
271. 주소록 검색 프로그램 구현하기
272. 주소록 수정 프로그램 구현하기
273. 주소록 삭제 프로그램 구현하기
274. 주소록 구현하기
275. 정보처리 기사/산업기사 문제 1
276. 정보처리 기사/산업기사 문제 2
277. 정보처리 기사/산업기사 문제 3
278. 정보처리 기사/산업기사 문제 4
279. 메시지 암호화 및 복호화하기
280. 파일 암호화 및 복호화하기

PART 5. 실무 - 안녕 ! TCP/IP
281. TCP/IP 초기화하기
282. 주소 및 포트 설정하기
283. 서버 프로그램 만들기
284. 클라이언트 프로그램 만들기
285. 데이터 송신하기
286. 데이터 수신하기
287. 클라이언트 접속 주소 및 포트 알아내기
288. 송수신 버퍼 크기 설정하기
289. TCP/IP를 안전하게 종료하기
290. 파일 수신하기
291. 파일 송신하기
292. 특정 IP의 사용중인 포트를 모두 검색하기
293. 에코 서버 만들기
294. 에코 클라이언트 만들기
295. 채팅 서버 만들기
296. 채팅 클라이언트 만들기
297. 인증 서버 만들기
298. 인증 클라이언트 만들기
299. 메일 서버와 통신하기
300. 웹 서버와 통신하기
[교보문고에서 제공한 정보입니다.]