본문 바로가기

S-DEV/C언어 마스터....

(8)
로그파일로 데이터베이스 생성 • 로그로 데이터베이스 생서 * 구조체 배열을 반드시 이용할 것!!! • 로그 데이터 데이터 베이스에는 user 와 password 정보만 저장할 것이다. • 구조체 배열 struct success { char username[100]; char password[100]; }; struct error { char e_username[100]; char e_password[100]; }; success 와 error 구조체를 만들어 username, password를 저장할 배열을 생성한다. • 로그 파일 열기 fp = fopen("C:\\Users\\user\\Desktop\\c과제\\c\\log.txt", "r"); if (fp == NULL) { fprintf(stderr, "파일 없음"); exit..
중첩 구조체를 이용한 로그인 프로그램 • 중첩 구조체를 이용하여 로그인 프로그램 코드 작성 10-02. 중첩 구조체 - C 언어 (wikidocs.net) 참고하였다. 작성한 코드 분석 • 메인 함수 int main() { int num = 0; //메인 화면 구성 printf("1. 로그인\n"); printf("2. 회원가입\n"); printf("3. 종료\n"); printf("번호 선택: "); scanf("%d", &num); //스위치문을 사용해 3가지 기능 실행 switch (num) { case 1: login(); break; case 2: join(); break; default: printf("로그인 프로그램 종료\n"); break; } } • 로그인 기능 int login() { char username[21]; c..
Socket 보호되어 있는 글입니다.
정규 표현식 구현 코드 ∙ 정규 표현식 문자열의 일정한 패턴을 표현하는 일종의 형식 언어이다. 즉, 프로그램을 작성할 때는 특성상 일정한 규칙을 가진 텍스트 문자열을 사용하는 경우가 많은데 이럴때 특정 문자 조합을 찾기 위한 패턴이다. ∙ 정규화 코드 작성 주어진 정규화 표현식을 해석해 보면 ^(?=.*[A-Z]).+$ 은 최소한 한개이 상의 문자가 있어야하고, 반드시 대문자가 포함이 되어있어야한다. 즉, 대문자가 포함이 되는 코드를 작성하면 된다. #include #include #include int main() { char str[10]; // 사용자로부터 입력받을 문자열을 저장할 배열 int res = 0; // 사용자로부터 문자열 입력 받기 printf("문자열을 입력하세요: "); fgets(str, sizeof(s..
strcpy 구현 • strcpy 정의 char *strcpy( char* strDestination, const char* strSource ) strcpy() 함수는 null byte를 포함하는 strSource 문자열을 strDestination 버퍼에 복사를 합니다. * strDestination 버퍼에 strSource 문자열을 복사하기 위해서는 충분한 사이즈가 있어야한다.(strSource 문자열 사이즈 안에 null byte가 없으면, strDestination 문자열에도 null byte가 추가 되지 않아 정상적인 문자열 처리가 불가능하다.) • strcpy 구현 #define _CRT_SECURE_NO_WARNINGS #include #include char my_strcpy(char* str1, char..
int 배열과 char 배열의 차이점 • int 배열 int 배열은 정수형 데이터를 사용할 때 사용이 가능하며, 보통 4바이트 크기를 가진다. 실습 #define _CRT_SEUCRE_NO_WARNINGS #include int main() { //int 배열 int num[9] = { 1,2,3,4,5,6,7,8,9 }; char str[] = "Hello world"; for (int j = 0 ; i < sizeof(num)/sizeof(int); j++){ printf("%x\n",&num[j]); } for (int i = 0; i < sizeof(str)/sizeof(char); i++) { printf("%x\n", &str[i]); } } - int 배열 메모리 확인 -char 배열 메모리 확인 int 배열의 시작 주소와 끝 ..
Windows C 최적화 • 최적화 컴파일러 최적화 기능은 소스코드를 기계어로 변환할 때 코드를 더 빠르게 실행하고 메모리를 효율적으로 사용하기 위함이다. - 코드 최적화 /O 옵션 ⇒ 최대 속도 또는 최소 크기에 대한 코드를 만드는데 도움이 되는 옵션이다. 여러 옵션들이 있지만, Visual Studio 프로그램에서 할 수 있는 최적화 옵션에 대해서만 작성을 하였다. > /Od 옵션은 최적화를 사용하지 않도록 설정하여 컴파일 속도를 조정하고 디버깅을 간소화한다. > /O1 옵션은 최소 크기 코드를 생성하는 최적화의 조합을 설정한다. > /O2 옵션은 최대 속도를 위해 코드를 최적화하는 최적화의 조합을 설정한다. > /Ox 옵션은 속도에 중점을 둔 여러 최적화를 선택하는 조합 옵션이다. • 최적화 예시 코드 #define _CR..
C언어 기록 - 10진수를 2진수로 변환(배열을 사용하지 않음) #define _CRT_SECURE_NO_WARINGS #include int main() { int num = 0; int nu1 = 0; int cnt = 1; int result = 0; scanf("%d",&num); // 13 printf("10진수 : %d\n",num); while(1){ if(num < 2 ){ result += cnt * num; //printf("%d\n",reseult); break; } else{ nu1 = num % 2; // 1, 0, 1 //printf("%d\n",nu1); num = num /2 ; // 6 , 3, 1 //printf("%d\n",num); result += cnt * nu1; cnt *=..