728x90

c언어 125

C언어 연습문제 풀이 CH11 (5~8)

5. 문자열 "information"과 "communication"을 두 개의 포인터 변수에 각각 저장하고, 두 문자열을 합하여 출력하는 프로그램을 작성하라. //문자열 "information"과 "communication"을 두 개의 포인터 변수에 각각 저장하고, 두 문자열을 합하여 출력하는 프로그램을 작성하라. #include #include #include int main() { const char* str1 = "information "; const char* str2 = "communication"; char* str = (char*)malloc(sizeof(char) * (strlen(str1) + strlen(str2) + 1)); strcpy_s(str, _msize(str), str1);..

C언어 연습문제 풀이 CH11 (1 ~ 4)

1. isalpha()를 이용하여 알파벳 대/소문자를, isdigit()와 ispunct()함수를 이용하여 숫자와 특수 문자를 출력하는 프로그램을 작성하라. //isalpha()를 이용하여 알파벳 대/소문자를, isdigit()와 ispunct()함수를 이용하여 숫자와 특수 문자를 출력하는 프로그램을 작성하라. #include #include //C언어는 아스키코드로 문자를 표현하고 아스키코드는 총 256개(1byte)이다. int main() { printf("isalpha : "); for (int i = 0; i < 256; i++) { if (isalpha(i)) { printf("%c ", i); } } printf("\n"); printf("isdigit : "); for (int i = 0;..

C언어 표준 라이브러리 주요예제 3 (자료 변환 처리 함수 ~ 시간 관련 함수)

1. 키보드로부터 두 문자열을 입력받고, 이것을 double형 실수로 변환하여 합하는 프로그램을 작성하라. #include #include #include int main() { char buffer1[120]; char buffer2[120]; printf("첫번째 실수를 입력하세요 : "); gets_s(buffer1,120); printf("두번째 실수를 입력하세요 : "); gets_s(buffer2,120); printf("두 수의 합은 %g입니다. \n", atof(buffer1)+atof(buffer2)); } 2. 키보드로부터 두 문자열을 입력받고, 이것을 int형 정수로 변환하여 합하는 프로그램을 작성하라. #include #include #include int main() { char ..

const int* 와 int* const의 차이점

int i; const int* cip = &i;//포인터 변수를 통해서 값을 변경하는 것을 금지. int* const ipc = &i;//포인터가 가리키는 대상을 변경하는 것을 금지. int main() { int i = 5; int j = 6; const int* cip = &i; cip = &j; // *cip = 8; 안됨 int* const ipc = &i; *ipc = 1; // ipc = &j; 안됨 } const int* const cipc = &i; //포인터가 가리키는 대상을 변경하는 것도 포인터 변수를 통해 값을 변경하는 것도 금지.

C언어 표준 라이브러리 주요예제 2 (기억장치 관리 함수 ~ 문자 처리 함수)

기억 장치 관리 함수1. 10 바이트의 기억 공간을 확보하여 "Hello" 문자열에 할당하고 출력하는 프로그램을 작성하라. #include #include #include int main() { char* p; if ((p = (char*)malloc(10)) == NULL) { printf("메모리 할당 실패 \n"); return 0; } strcpy_s(p, 10, "Hello"); printf("%s",p); free(p); } 2. 5개의 변수에 대해 128 바이트 기억 공간을 확보하고, 만약 기억 공간을 할당받지 못할 경우 "메모리 할당 실패" 메시지와 함께 프로그램에서 빠져나오고, 할당받을 경우에는 한 문자열을 키보드를 통해 입력받을 수 있는 프로그램을 작성하라. #include #inclu..

동적할당의 한계치.

32Bit OS에서의 동적영역의 한계치는 4Giga-1Byte라고 한다. (1Byte는 항상 커널이 잡고 있다고 한다.)그렇다면 64Bit에서는 8Giga-1Byte일 것 같은데, 아니다. 똑같이 4Giga-1Byte이다.64Bit OS와 32Bit OS의 호환성을 위해서 늘리지 않은것일까?따로 더 쓸 수 있게 설정하는 방법이 있다고 하는 것도 같던데 아직 정확한 정보를 찾지 못했다. 4294967295byte = 4Giga-1Byte.아래의 코드에서 더 할당하려고 하면 뻑이난다. #include #include int main() { unsigned long int num; scanf_s("%u", &num); void* p = (void*)malloc(num+4294967295); //_msize(p..

C언어 표준 라이브러리 주요예제 1 (문자열 처리 함수)

1. 문자열을 복사하고, 길이를 구하는 프로그램을 작성하라. #include #include int main() { char str1[10]; strcpy_s(str1, "abc"); printf("%s", str1); printf("%zd \n",strlen(str1)); } 2. 키보드로부터 입력되는 두 문자열을 연결하는 프로그램을 작성하라. #define _CRT_SECURE_NO_WARNINGS //scanf로만 되기 때문에 넣어뒀다. //별로 좋은 예제는 아님. #include #include int main() { char str1[100]; char str2[100]; printf("첫번째 문자열을 입력하세요 : "); scanf("%s", str1); printf("두번째 문자열을 입력하세..

C언어 이론 11. 표준 라이브러리(기억장치 관리 함수 ~ 시간 관련 함수)

내용 출처 : YES C (정보공학연구소 /생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) Ⅰ. 기억장치 관리 함수 ① 힙(메모리의 동적 영역)에 공간을 할당하고 해제하는데 사용되는 함수. ② 이에 대한 내용은 동적할당에 대해 적은 부분에서 확인할 것. ③ 아래의 함수들은 stdilb.h나 malloc.c에 선언되어 있다. 함수명 형식 기능 calloc() void* calloc(unsinged n, unsigned size) size 바이트의 공간을 n개 할당하고 시작 지점의 포인터를 반환. 내용은 0으로 초기화 malloc() void* malloc(unsigned size) size 바이트의 공간을 할당하고,시작 지점의 포인터를 반환. free() void* free(void* p..

반응형