C59 문자 입출력 라이브러리 int getchar(void) //하나의 문자를 읽어서 반환한다.(버퍼사용)void putchar(int c) //변수 c에 저장된 문자를 출력한다.(버퍼사용)int _getchar(void) //하나의 문자를 읽어서 반환한다.(버퍼사용x)void _putch(int c) //변수 c에 저장된 문자를 출력한다.(버퍼사용x)scanf("%c",&c) //하나의 문자를 읽어서 변수 c에 저장한다.printf("%c",c) //변수 c에 저장된 문자를 출력한다. getchar(), putchar()int ch;ch= getchar(); //하나의 문자를 읽는다.putchar(ch); //하나의 문자를 쓴다.ex)//getchar()의 사용#include int main(void){ int ch; //정수형에.. 2024. 6. 25. 문자열 기본 개념 및 활용 문자열 초기화 #include int main(){ int i; char str[4]; str[0]='a'; str[1]='b'; str[2]='c'; str[3]='\0'; i=0; while(str[i]!='\0'){ printf("%c",str[i]); i++; } return 0;}참고사항A : 변수 이름'A' : 문자 A, 하나의 문자, 아스키코드"A" : 문자 A만으로 이루어진 문자열 , 'A'와는 다르다. (문자열 끝에 NULL문자가 추가된다.)여러가지 초기화 방법char str[4]={'a','b','c','\0'};char str[4]="abc";두가지 방법 모두 사용가능하다.char str[4]="".. 2024. 6. 24. 날짜 구현 #include #include int main() { time_t t = time(NULL); struct tm* tm_info = gmtime(&t); tm_info->tm_hour += 9; mktime(tm_info); char date[11]; // "YYYY-MM-DD\0" 이므로 11칸 필요 strftime(date, sizeof(date), "%Y-%m-%d", tm_info); printf("%s\n", date); return 0;} 내장된 매크로인 __DATE__를 사용하면 컴파일된 날짜를 Jul 9 2024 꼴로 출력해주긴한다.printf("%s",__DATE__); 2024. 6. 23. 동적 메모리 할당 배열의 크기를 변수로 입력받아 사용하고 싶을때마다 컴파일러 설정을 바꿔주는것이 귀찮다.#define _CRT_SECURE_NO_WARNINGS#include #include int main() { int N; scanf("%d", &N); // 동적 메모리 할당 int* a = (int*)malloc(N * sizeof(int)); float* b = (float*)malloc(N * sizeof(float)); // 메모리 할당 실패 시 처리 if (a == NULL || b == NULL) { printf("메모리 할당 실패\n"); return 1; } int M = 0; // 초기화를 0으로 수정 float sum =.. 2024. 6. 21. 백준 10818번 최대,최소 문제에서의 VLA와 동적할당 이슈 다음 문제를 보고 바로 다음과 같이 코드를 짜서 돌렸더니 오류가 발생했다.#define _CRT_SECURE_NO_WARNINGS#include int main() { int N, X = 0; scanf("%d %d", &N, &X); int A[N]; for (int i = 0; i 그래서 오류를 확인해보니 배열 크기에 변수가 아닌 상수가 와야한다고 적혀있길래챗지피티에게 문제를 복사하여 물어보았더니 이게 무슨 일인가,나와 똑같이 답을 내준다. 그래서 혹시나하고 백준문제 제출을 하고 채점을 받아보니 정답이라고 나오길래 의아해 하던참에 검색해본결과컴파일러에 따라 VLA(가변 길이 배열)을 제공유무에 따라 오류가 생기거나 그렇지 않은것이었다.따라서 내가 쓰는 비주얼 스튜디오에서는 VLA.. 2024. 6. 20. 포인터 연습 예제2 포인터 연산은 헷갈리기 쉬우므로 다음 예제를 통해 한번에 확실하게 구분해보자.#include int main(void){ int i = 10; int* pi = &i; printf("i=%d, pi=%p\n", i, pi); (*pi)++; // pi가 가리키는 대상(i 값)을 증가 printf("i=%d, pi=%p\n", i, pi); *pi++; // pi(주소)를 증가 (pi를 다음 int 위치로 이동) printf("i=%d, pi=%p\n", i, pi); *++pi; // pi를 증가시키고 (다음 int 위치로 이동), 그 위치의 값을 참조 (하지만 아무 연산도 수행하지 않음) printf("i=%d, pi=%p\n", i, pi); ++*pi; // pi가 가리키는 대상의 .. 2024. 6. 4. 이전 1 2 3 4 5 ··· 10 다음