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