CHAPTER 09 - 0083tony/Core-C-Programming GitHub Wiki

๋ฌธ์ž์—ด

  • 1๋ฒˆ ๋ฌธ์ œ

๊ณต๋ฐฑ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ

#include<stdio.h>
#include<string.h>// strlen()ํ•จ์ˆ˜
#include<ctype.h>// isspace()ํ•จ์ˆ˜
int main(void) {
	char str[256];
	int count = 0;

	printf("๋ฌธ์ž์—ด? ");
	scanf_s("%[^\n]", str, 256);

	// ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ n์— ์ €์žฅ
	int n = strlen(str);

	for (int i = 0; i < n; i++) {
		// ๊ณต๋ฐฑ๋ฌธ์ž๋ฅผ ์ฐพ์„๋•Œ ๋งˆ๋‹ค count++
		if (isspace(str[i]))
			count++;
	}

	printf("๊ณต๋ฐฑ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜: %d", count);

	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

๋ฌธ์ž์—ด? ABC abc FF123   ff123
๊ณต๋ฐฑ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜: 3
  • 2๋ฒˆ ๋ฌธ์ œ

๋ฌธ์ž ๋ฐฐ์—ด์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์•„ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋Š” ํ•จ์ˆ˜ ํ”„๋กœ๊ทธ๋žจ

#include<stdio.h>
#include<ctype.h>// isspace() ํ•จ์ˆ˜
void remove_space(char* str) {
	char* pstr = str;

	while (*str != 0) {
		// ๊ณต๋ฐฑ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ฐฐ์—ด์— ์ €์žฅ
		if (isspace(*str) == 0) {
			if (pstr != str)
				* pstr = *str;
			pstr++;
		}
		str++;
	}
	*pstr = 0;
}
int main(void) {
	char str[256];

	printf("๋ฌธ์ž์—ด? ");
	scanf_s("%[^\n]s", str, 256);
	remove_space(str);
	printf("๊ณต๋ฐฑ ๋ฌธ์ž ์ œ๊ฑฐํ›„: %s", str);

	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

๋ฌธ์ž์—ด? ABCDEF abcdef   12345
๊ณต๋ฐฑ ๋ฌธ์ž ์ œ๊ฑฐํ›„: ABCDEFabcdef12345
  • 3๋ฒˆ ๋ฌธ์ œ

๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ์„œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ํ”„๋กœ๊ทธ๋žจ

#include<stdio.h>
#include<string.h>// strlen()ํ•จ์ˆ˜
#include<ctype.h>// isupper(),toupper()ํ•จ์ˆ˜
int main(void) {
	char str[256];
	int size;

	printf("๋ฌธ์ž์—ด? ");
	scanf_s("%[^\n]", str, 256);

	// ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ
	size = strlen(str);

	// ๋Œ€๋ฌธ์ž ์†Œ๋ฌธ์ž ๋ณ€ํ™˜
	for (int i = 0; i < size; i++) {
		if (isupper(str[i])) {
			str[i] = tolower(str[i]);
		}
		else if (islower(str[i])) {
			str[i] = toupper(str[i]);
		}
	}

	printf("๋ณ€ํ™˜ ํ›„: %s", str);

	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

๋ฌธ์ž์—ด? ABCDEFG abcdefg
๋ณ€ํ™˜ ํ›„: abcdefg ABCDEFG
  • 4๋ฒˆ ๋ฌธ์ œ

๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ์—ญ์ˆœ์œผ๋กœ ๋ณ€ํ™˜ํ•ด ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜ ํ”„๋กœ๊ทธ๋žจ

#include<stdio.h>
#include<string.h>// strlen()ํ•จ์ˆ˜
void reverse_string(char* str, int n) {
	char temp;

	for (int i = 0; i < n / 2; i++) {
		temp = str[i];
		str[i] = str[(n - 1) - i];
		str[(n - 1) - i] = temp;
	}
}
int main(void) {
	char str[256];
	int size;

	printf("๋ฌธ์ž์—ด? ");
	scanf_s("%[^\n]", str, 256);

	size = strlen(str);

	reverse_string(str, size);
	printf("๋ณ€ํ™˜ ํ›„: %s", str);

	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

๋ฌธ์ž์—ด? Atom Visualcode
๋ณ€ํ™˜ ํ›„: edoclausiV motA
  • 5๋ฒˆ ๋ฌธ์ œ

๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜ ํ”„๋กœ๊ทธ๋žจ

#include<stdio.h>
#define SIZE 255 // SIZE๋ฅผ 255๋กœ ์ •์˜
int strcmp_ic(char* a, char* b) {

	// ๋Œ€๋ฌธ์ž๋ฅผ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•ด ๋น„๊ต
	while (*a >= 'A' && *a <= 'Z') {
		// ASCII A+32 == a
		*a = *a + 32;
	}
	while (*b >= 'A' && *b <= 'Z') {
		*b = *b + 32;
	}
	//๊ฐ™์œผ๋ฉด 1 ๋‹ค๋ฅด๋ฉด -1 ๋ฆฌํ„ด
	if (*a == *b) {
		return 1;
	}
	else
		return -1;
}
int main(void) {
	char a[SIZE] = "";
	char b[SIZE] = "";

	printf("์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด? ");
	gets_s(a, sizeof(a));
	printf("๋‘ ๋ฒˆ์งธ ๋ฌธ์ž์—ด? ");
	gets_s(b, sizeof(b));

	if (strcmp_ic(a, b) < 0) {
		printf("%s์™€ %s๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.\n", a, b);
	}
	else
		printf("%s์™€ %s๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค.\n", a, b);

	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด? KimChi
๋‘ ๋ฒˆ์งธ ๋ฌธ์ž์—ด? kIMchi
kimChi์™€ kIMchi๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • 6๋ฒˆ ๋ฌธ์ œ

์‹œ๊ฐ„ ๋ฌธ์ž์—ด์ด ์œ ํšจํ•œ ์‹œ๊ฐ„์ธ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜ ํ”„๋กœ๊ทธ๋žจ

#include<stdio.h>
#define MAX 256 // MAX๋ฅผ 256์œผ๋กœ ์ •์˜
void check_time_str(char* time) {
	int T = 0;

	if (time[0] >= '0' && time[0] <= '2') { // hour
		if (time[1] >= '0' && time[1] <= '9')
			T++;
		if (time[0] == '2' && time[1] >= '5')
			T--;
		if (time[2] >= '0' && time[2] <= '5') { //min
			if (time[3] >= '0' && time[3] <= '9')
				T++;
		}
		if (time[4] >= '0' && time[4] <= '5') { //sec
			if (time[5] >= '0' && time[5] <= '9')
				T++;
		}
	}
	if (time[0] == '2' && time[1] == '4') { // if time over 24:00:00 false
		if (time[2] != '0' || time[3] != '0' || time[4] != '0' || time[5] != '0')
			T++;
	}
	if (T != 3) {
		printf("์ž˜๋ชป ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. hhmmssํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•˜์„ธ์š”.\n");
	}
	else
		printf("%s๋Š” ์œ ํšจํ•œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.\n", time);
}
int main(void) {
	char time[MAX];

	for (;;) {
		printf("์‹œ๊ฐ„(. ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ)? ");
		scanf_s("%s", &time, MAX);

		// .์„ ์ž…๋ ฅํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ
		if (*time == '.')
			break;

		// ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด time์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ
		check_time_str(time);
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

์‹œ๊ฐ„(. ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ)? 123456
123456๋Š” ์œ ํšจํ•œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.
์‹œ๊ฐ„(. ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ)? 987654
์ž˜๋ชป ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. hhmmssํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•˜์„ธ์š”.
์‹œ๊ฐ„(. ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ)? .
  • 7๋ฒˆ ๋ฌธ์ œ

์ „ํ™”๋ฒˆํ˜ธ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๊ณ  ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜ ํ”„๋กœ๊ทธ๋žจ

#include<stdio.h>
#define MAX 256
void check_phone_str(char* phone) {
	int T = 0;

	/* ๋ฌธ์ž์—ด์— ์ €์žฅ๋œ ๋ฌธ์ž๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์ธ์ง€ ๊ฒ€์‚ฌ
	index0,1,2์— ์ €์žฅ๋œ ๋ฌธ์ž๊ฐ€ 0,1,0์ธ์ง€ ํ™•์ธ*/
	if (phone[0] == '0' && phone[1] == '1' && phone[2] == '0') {
		for (int i = 3; i <= 10; i++) {
			// 0~9 ์‚ฌ์ด์˜ ์ˆซ์ž๊ฐ€ ๋งž์œผ๋ฉด T++
			if (phone[i] >= '0' && phone[i] <= '9')
				T++;
		}
	}

	// ์ „ํ™”๋ฒˆํ˜ธ๋Š” 8์ž๋ฆฌ
	if (T == 8)
		printf("%s๋Š” ์œ ํšจํ•œ ์ „ํ™”๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.\n", phone);
	else
		printf("์ž˜๋ชป ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. 01012345678 ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•˜์„ธ์š”.\n");
}
int main(void) {
	char phone[MAX];

	for (;;) {
		printf("์ „ํ™”๋ฒˆํ˜ธ(. ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ)? ");
		scanf_s("%s", &phone, MAX);

		// .์ž…๋ ฅ์‹œ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ
		if (*phone == '.')
			break;

		check_phone_str(phone);
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

์ „ํ™”๋ฒˆํ˜ธ(. ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ)? 010-1234-5678
์ž˜๋ชป ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. 01012345678 ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•˜์„ธ์š”.
์ „ํ™”๋ฒˆํ˜ธ(. ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ)? 01012345678
01012345678๋Š” ์œ ํšจํ•œ ์ „ํ™”๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.
์ „ํ™”๋ฒˆํ˜ธ(. ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ)? .
  • 8๋ฒˆ ๋ฌธ์ œ

์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ์‹œ์ € ์•”ํ˜ธํ™” ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

#include <stdio.h>
#include <string.h>// strlen()ํ•จ์ˆ˜
#define MAX 256
int main(void) {
	char pass[MAX] = "";
	int key = 0;
	size_t size;

	for (;;) {
		printf("๋ฌธ์ž์—ด? ");
		scanf_s("%[^\n]s", &pass, MAX);

		// .์ž…๋ ฅ์‹œ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ
		if (*pass == '.')
			break;

		printf("์•”ํ˜ธ ํ‚ค(์ •์ˆ˜)? ");
		scanf_s("%d", &key);

		getchar(); // ๋ฒ„ํผ ๋น„์›€

		// ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•จ
		size = strlen(pass);

		// ๋ฌธ์ž์—ด์— key๋ฅผ ๋”ํ•ด ์•”ํ˜ธํ™”
		for (size_t i = 0; i < size; i++) {
			if (pass[i] != ' ') {
				pass[i] = pass[i] + key;
			}
		}
		printf("์•”ํ˜ธํ™”๋œ ๋ฌธ์ž์—ด: %s\n", pass);
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

๋ฌธ์ž์—ด? ABCDEF
์•”ํ˜ธ ํ‚ค(์ •์ˆ˜)? 1
์•”ํ˜ธํ™”๋œ ๋ฌธ์ž์—ด: BCDEFG
๋ฌธ์ž์—ด? C# C C++
์•”ํ˜ธ ํ‚ค(์ •์ˆ˜)? 3
์•”ํ˜ธํ™”๋œ ๋ฌธ์ž์—ด: F& F F..
๋ฌธ์ž์—ด? .
  • 9๋ฒˆ ๋ฌธ์ œ

ํŒŒ์ผ ์ด๋ฆ„๊ณผ ํ™•์žฅ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ™•์žฅ์ž๋ฅผ ํฌํ•จํ•œ ํŒŒ์ผ๋ช…์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>// strcat()ํ•จ์ˆ˜
#define MAX 256
int main(void) {
	char name[MAX] = "";
	char extn[MAX] = "";
	char dot[2] = ".";

	printf("ํŒŒ์ผ๋ช…? ");
	scanf("%[^\n]s", name);

	getchar(); // ๋ฒ„ํผ๋ฅผ ๋น„์›€

	printf("ํ™•์žฅ์ž? ");
	scanf("%[^\n]s", extn);

	// ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜๋กœ ๋ณ‘ํ•ฉ
	strcat(name, dot);
	strcat(name, extn);

	printf("์ „์ฒด ํŒŒ์ผ๋ช…:  %s", name);

	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

ํŒŒ์ผ๋ช…? Empty_class
ํ™•์žฅ์ž? avi
์ „์ฒด ํŒŒ์ผ๋ช…: Empty_class.avi
  • 10๋ฒˆ ๋ฌธ์ œ

์˜๋ฌธ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์•„ ์ด๋‹ˆ์…œ์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<string.h> //strlen(),strupr()ํ•จ์ˆ˜
#include<ctype.h> //isblank()ํ•จ์ˆ˜
#define MAX 256
int main(void) {
	char name[MAX] = "";

	for (;;) {
		printf("์˜๋ฌธ ์ด๋ฆ„? ");
		scanf("%[^\n]s", name);// %[^\n]s == \n์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ

		getchar();// ๋ฒ„ํผ๋ฅผ ๋น„์›€

		if (*name == '.')// .์ž…๋ ฅ์‹œ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ
			break;
		
		printf("์ด๋‹ˆ์…œ: ");

		_strupr(name);// ํ•จ์ˆ˜์— _๋ถ™์ด๋ฉด error C4996 ์˜ค๋ฅ˜ x

		for (size_t i = 0; i < strlen(name); i++) {
			if (i == 0) {
				printf("%c", name[0]);
			}
			// ๊ณต๋ฐฑ ๋ฌธ์ž ๋’ค์˜ ๋ฌธ์ž๋ฅผ ์ €์žฅ
			if (isblank(name[i])) {
				printf("%c", name[i + 1]);
			}
		}
		printf("\n");
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

์˜๋ฌธ ์ด๋ฆ„? Tony Kim
์ด๋‹ˆ์…œ: TK
์˜๋ฌธ ์ด๋ฆ„? tony kim
์ด๋‹ˆ์…œ: TK
์˜๋ฌธ ์ด๋ฆ„? .
  • 11๋ฒˆ ๋ฌธ์ œ

์ตœ์†Œ 2๋ฌธ์ž ์ด์ƒ์œผ๋กœ ์ž…๋ ฅํ•ด์•ผํ•˜๋Š” ๋๋ง์ž‡๊ธฐ ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋žจ

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<string.h>// strlen()ํ•จ์ˆ˜
#define MAX 256
int main(void) {
	char word[MAX] = "";
	char check_word;
	int count = 0;

	printf("word? ");
	scanf("%s", word);

	check_word = word[strlen(word) - 1];
	count++;

	for (;;) {
	start:
		printf("word? ");
		scanf("%s", word);

		// 2๊ธ€์ž ์ดํ•˜๋Š” ๋‹ค์‹œ ์ž…๋ ฅ
		if (strlen(word) < 3) {
			printf("too short, try again\n");
			goto start;
		}
		/* ์ด์ „ ๋‹จ์–ด์˜ ๋ ๋ฌธ์ž์™€ ์ž…๋ ฅ๋ฐ›์€ ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ํ‹€๋ฆฌ๋ฉด
		์„ฑ๊ณต ํšŸ์ˆ˜ ์ถœ๋ ฅ ํ›„ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒ*/
		else if (check_word != word[0]) {
			printf("WRONG WORD!!! YOU FAILED!!\n");
			printf("count: %d", count);
			break;
		}
		check_word = word[strlen(word) - 1];
		count++;
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

word? X-mas
word? ski
word? so
too short, try again
word? iso
word? byebye
WRONG WORD!!! YOU FAILED!!
count: 3
  • 12๋ฒˆ ๋ฌธ์ œ

์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ํšŒ์ „ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

/*์˜ˆ์ œ๋ฌธ์ œ์˜ ์กฐ๊ฑด๊ณผ ๋™์ž‘์ด ๋‹ค๋ฆ„
์Œ์ˆ˜ ์ž…๋ ฅ์‹œ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•˜์ง€ ์•Š์Œ*/
#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<string.h>
#define MAX 256
void reverse(char* word) {
	size_t size = strlen(word);
	char temp;

	for (size_t i = 0; i < size / 2; i++) {
		temp = word[i];
		word[i] = word[(size - 1) - i];
		word[(size - 1) - i] = temp;
	}
}
int main(void) {
	char word[MAX] = "";
	char wordA[MAX] = "";
	char wordB[MAX] = "";
	size_t key;
	
	printf("๋ฌธ์ž์—ด? ");
	scanf("%[^\n]s", word);

	for (;;) {
		printf("์ด๋™ํ•  ๊ธ€์ž์ˆ˜? ");
		scanf("%d", &key);

		if (key == 0)break;

		for (size_t i = 0; i < strlen(word); i++) {
			if (i < strlen(word) - key) {
				wordA[i] = word[i];
			}
			else wordB[strlen(word) - i - 1 ] = word[i];
			if (i == strlen(word) - key) {
				wordA[i] = NULL;
			}
		}

		reverse(wordB);

		word[0] = '\0';

		strcat(word, wordB);
		strcat(word, wordA);

		printf("%s\n", word);
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

๋ฌธ์ž์—ด? Happy Halloween
์ด๋™ํ•  ๊ธ€์ž์ˆ˜? 2
enHappy Hallowe
์ด๋™ํ•  ๊ธ€์ž์ˆ˜? 0
  • 13๋ฒˆ ๋ฌธ์ œ

์•ฑ์˜ ์‚ฌ์šฉํŒ์„ ๋ณด์—ฌ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<stdlib.h>// srand(),rand()ํ•จ์ˆ˜
#include<time.h>// time()ํ•จ์ˆ˜
#define MAX 256
int main(void) {
	srand(time(NULL));
	char tip[4][MAX] = {
		"Live Photo์˜ ์Šคํ‹ธ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
		"์Šคํฌ๋ฆฐ ํƒ€์ž„์—์„œ iPhone์˜ ํ•˜๋ฃจ ์‚ฌ์šฉ ์‹œ๊ฐ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
		"C์–ธ์–ด๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ๋„ ๋ชปํ•˜๋Š” ๋ฐ”๋ณด",
		"์˜ˆ๋น„๊ตฐ๊ฐ€๊ธฐ ์‹ซ๋‹ค..."
	};

	printf("์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ ํŒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.\n");

	while (getchar() != EOF) {
		int a = rand() % 4;
		printf("%s\n", tip[a]);
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ ํŒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ํƒ€์ž„์—์„œ iPhone์˜ ํ•˜๋ฃจ ์‚ฌ์šฉ ์‹œ๊ฐ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋น„๊ตฐ๊ฐ€๊ธฐ ์‹ซ๋‹ค...

Live Photo์˜ ์Šคํ‹ธ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 14๋ฒˆ ๋ฌธ์ œ

์ž…๋ ฅ๋ฐ›์€ ์•„์ด๋””๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<string.h>// strlen()ํ•จ์ˆ˜
#define MAX 256
int main(void) {
	char ID[MAX] = "";
	size_t a;

start:
	printf("ID? ");
	scanf("%s", ID);
	a = strlen(ID);

	if (a < 8) {
		printf("ID๋Š” 8์ž ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n");
		goto start;
	}
	if (ID[0] >= '0' && ID[0] <= '9') {
		printf("ID๋Š” ์˜๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n");
		goto start;
	}
	for (size_t i = 0; i < a; i++) {
		if (ID[i] >= '!' && ID[i] <= '/' || ID[i] >= ';' && ID[i] <= '@') {
			printf("ID๋Š” ์˜๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n");
			goto start;
		}
	}
	printf("%s๋Š” ID๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n", ID);

	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

ID? admin
ID๋Š” 8์ž ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ID? 1004admin
ID๋Š” ์˜๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ID? admin1004
admin1004๋Š” ID๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 15๋ฒˆ ๋ฌธ์ œ

์‹œ,๋ถ„,์ดˆ๋ฅผ ์ •์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›์•„ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ ํ”„๋กœ๊ทธ๋žจ

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<string.h>// strlen()ํ•จ์ˆ˜
char time_to_string(char* time, int a, int h, int m, int s) {

	if (h > 24 || m > 60 || s > 60) {
		return -1;
	}
	// ์ •์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
	sprintf(&time[0], "% d", h);
	sprintf(&time[4], "% d", m);
	sprintf(&time[8], "% d", s);

	time[3] = ':';
	time[7] = ':';

	return a;
}
int main(void) {
	char time[12];
	int h, m, s;
	int a = strlen(time); // ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ

	printf("์‹œ ๋ถ„ ์ดˆ? ");
	scanf("%d %d %d", &h, &m, &s);

	time_to_string(time, a, h, m, s);

	printf("%s", time);

	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

์‹œ ๋ถ„ ์ดˆ? 12 34 56
 12: 34: 56
  • 16๋ฒˆ ๋ฌธ์ œ

id์™€ pw์˜ ์˜ค๋ฅ˜๋ฅผ 3ํšŒ๊นŒ์ง€ ํ—ˆ์šฉํ•˜๋Š” ๋กœ๊ทธ์ธ ํ”„๋กœ๊ทธ๋žจ

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<string.h>// strcmp()ํ•จ์ˆ˜
#define MAX 256
/*
1. ID: abc123  PASS:123abc
2. ID: mmm123  PASS:123mmm
3. ID: mango   PASS:delicious
4. ID: need    PASS:money
5. ID: admin   PASS:want_to_go_home
*/
int main(void) {
	int num = 0;
	char ID[5][MAX]{
		"abc123",
		"mmm123",
		"mango",
		"need",
		"admin"
	};
	char PASS[5][MAX]{
		"123abc",
		"123mmm",
		"delicious",
		"money",
		"want_to_go_home"
	};
	char id[MAX] = "";
	char pass[MAX] = "";

	for (;;) {
	start:

		printf("ID: ");
		scanf("%s", id);
		printf("PW: ");
		scanf("%s", pass);

		for (int i = 0; i < 5; i++) {
			if (strcmp(ID[i], id) == 0) { //check ID
				if (strcmp(PASS[i], pass) == 0) { //check PW
					printf("๋กœ๊ทธ์ธ ์„ฑ๊ณต!\n");
					return 0;
				}
				else {
					printf("ํŒจ์Šค์›Œ๋“œ๊ฐ€ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.\n");
					num++;
					goto start;
				}
			}
		}
		printf("ํ•ด๋‹น id๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.\n");
		num++;

		if (num == 3) {
			printf("๋กœ๊ทธ์ธ ์‹คํŒจ ํšŸ์ˆ˜ ์ดˆ๊ณผ\n");
			break;
		}
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

ID: Meka
PW: abc123
ํ•ด๋‹น id๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ID: admin
PW: abc123123
ํŒจ์Šค์›Œ๋“œ๊ฐ€ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.
ID: admin
PW: want_to_go_home
๋กœ๊ทธ์ธ ์„ฑ๊ณต!
  • 17๋ฒˆ ๋ฌธ์ œ

๋…ธ๋ž˜ ์ œ๋ชฉ์„ 20๊ฐœ ๊นŒ์ง€ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
void add(const char(*psong)[40], int b) {
	printf("๋…ธ๋ž˜์ œ๋ชฉ? ");
	getchar();
	scanf("%[^\n]s", psong[b]);
}
void modify(const char(*psong)[40], int b) {
	char search[40];
	int find = 0;

	printf("์ฐพ์„ ๋…ธ๋ž˜ ์ œ๋ชฉ? ");
	getchar();
	scanf("%[^\n]s", search);

	for (int i = 0; i < b; i++) {

		if (psong[i][40] == *search) {
			printf("์ˆ˜์ •ํ•  ์ œ๋ชฉ? ");
			getchar();
			scanf("%[^\n]s", psong[i + 1]);
			find++;
		}
	}
	if (find == 0) printf("๋…ธ๋ž˜๋ฅผ ์ฐพ์„์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\n");
}
void list(const char(*psong)[40], int b) {
	printf("<<๋…ธ๋ž˜๋ชฉ๋ก>>\n");

	for (int i = 0; i < b; i++) {
		printf("%s\n", psong[i]);
	}
}
int main(void) {
	char song[20][40];
	unsigned int a, b = 0;

	for (;;) {
		printf("[ 0.์ข…๋ฃŒ 1.์ถ”๊ฐ€ 2.์ˆ˜์ • 3.๋ชฉ๋ก ] ์„ ํƒ? ");
		scanf("%d", &a);

		if (a > 3) {
			printf("์˜ฌ๋ฐ”๋ฅธ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.\n");
		}
		if (a == 1) {
			add(song, b);
			b++;
		}
		if (a == 2)modify(song, b);
		if (a == 3)list(song, b);
		if (a == 0)break;
	}
	return 0;
}
[์‹คํ–‰ ๊ฒฐ๊ณผ]

[ 0.์ข…๋ฃŒ 1.์ถ”๊ฐ€ 2.์ˆ˜์ • 3.๋ชฉ๋ก ] ์„ ํƒ? 1
๋…ธ๋ž˜์ œ๋ชฉ? DNA
[ 0.์ข…๋ฃŒ 1.์ถ”๊ฐ€ 2.์ˆ˜์ • 3.๋ชฉ๋ก ] ์„ ํƒ? 1
๋…ธ๋ž˜์ œ๋ชฉ? Fke Love
[ 0.์ข…๋ฃŒ 1.์ถ”๊ฐ€ 2.์ˆ˜์ • 3.๋ชฉ๋ก ] ์„ ํƒ? 2
์ฐพ์„ ๋…ธ๋ž˜ ์ œ๋ชฉ? Fke Love
์ˆ˜์ •ํ•  ์ œ๋ชฉ? Fake Love
[ 0.์ข…๋ฃŒ 1.์ถ”๊ฐ€ 2.์ˆ˜์ • 3.๋ชฉ๋ก ] ์„ ํƒ? 3
<<๋…ธ๋ž˜๋ชฉ๋ก>>
DNA
Fake Love
[ 0.์ข…๋ฃŒ 1.์ถ”๊ฐ€ 2.์ˆ˜์ • 3.๋ชฉ๋ก ] ์„ ํƒ? 0
โš ๏ธ **GitHub.com Fallback** โš ๏ธ