공부/C


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 #define _CRT_SECURE_NO_WARNINGS #include #include #include int main() { int num; char quiz[80] = { NULL, }; int sum = 0; int count = 0; scanf("%d", &num); for (int i = 0; i

C언어 독학 - 문자열 ##문자열 문자열은 " "로 묶으며, char 포인터나 배열에 저장하여 사용 문자열을 인덱스로 접근하면 문자를 출력할 수 있다. 이미 선언된 배열에는 문자열을 할당할 수 없다. 문자열을 할당하려면 선언과 동시에 문자열을 할당해야한다. 문자열 포인터에 문자열을 할당한 뒤에는 인덱스로 접근하여 요소를 변경할 수 없다. 문자열 리터럴이 있는 메모리 주소는 읽기 전용이기 때문이다. scanf로 문자열을 배열이나 포인터에 저장할 때는 &를 붙이지 않는다. 문자열은 문자열의 끝나는 지점을 알려주기 위해 NULL (\0)이 붙는다. 즉 배열의 크기는 문자열의 길이보다 1이 더 커야한다. ## 문자열 복사, 병합 함수 문자열 크기 비교 : strcmp(s1, s2) ASCII 코드 기준으로 문자..


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 #define _CRT_SECURE_NO_WARNINGS #include int main() { int num, fNum, sNum, newNum, prime, result; // num : 입력받을 값, fNum : num의 십의자리수, sNum : num의 일의자리수 // prime : 원래의 num값 , result : num을 변환한 값 int count = 0; // 사이클 횟수 scanf("%d", &num); prime = num; while (1) { ..

누군가 말하기를, 포인터가 C에서 공부하기 제일 어렵고 모호한 개념이랬다. 며칠에 걸쳐서 내용을 보니, 뭐, 틀린 말은 아니였다. C의 다른 내용을 보면 눈에 보이지 않는 '추상적'인 개념이 아닌, 눈에 직접적으로 보이는 형태를 띄고 있었으니까 말이다. 포인터는 가리킨다는 뜻의 동사 'point'에 'er'을 붙인 것이다. 따라서 가리킨다는 뜻이다. 포인터는 변수의 주소를 가지고 있는 변수이다. 포인터가 저장하고 있는 것은 값이 아니라 변수의 주소이다. 정수가 가리키는 포인터는 다음과 같이 정의된다. int *p; ─ 'C언어 콘서트' 책 내용 일부 발췌 나는 포인터의 개념을 완벽하게 이해하기 위해 여러 개의 사이트와 책을 참고하였다. 포인터는 메모리의 한 지점, 간단히 말해 번지값을 가지는 변수이다. ..

문제 출처 : C언어 콘서트 (저자 : 천인국) 프로그래밍 9번 문제. 문제 : 수학에서의 "random walk"라 불리는 문제를 배열을 이용하여 프로그래밍해보자. 문제는 다음과 같다. 술에 취한 딱정벌레가 10개의 1차원 타일 위를 걸어다닌다. 딱정벌레는 랜덤한 방향으로 이동한다. 현재의 위치에서 좌우의 2개의 타일로 걸어가는 확률은 동일하다고 가정하자. 딱정벌레가 지나간 길을 표시하는 프로그램을 작성해보자. 예 ) ____*_____ _____*____ ____*_____ ___*______ __*_______ _*________ *_________ *_________ _*________ *_________ _*________ __*_______ ___*______ ____*_____ ___*___..