본문 바로가기

컴퓨터/C, C++14

[C] C언어의 포인터 및 배열 정리, 포인터와 배열의 관계 포인터 정리 C언어에서 첫 번째 난관이라고 할 수 있고, 깊게 들어가자면 복잡하지만 그만큼이나 유용하고 C언어를 강력하게 만들어 주는 무기, 포인터를 배열과 연관지어 정리한다. 포인터와 연산자 포인터는 주소의 값을 보관하는 변수이다. 즉, 포인터란 메모리상에 위치하는 특정한 데이터의 주소의 값을 보관하는 변수이다. 단, 포인터에는 시작 주소의 값이 들어간다는 것을 명심하자. 포인터의 형태 (데이터 형) * (포인터의 이름); ex) int * p1; //int형 주소를 받는 포인터 char * p2;//char형 주소를 받는 포인터 포인터와 함께 쓰이는 연산자 &연산자 : 주소를 불러온다 ex) int a = 3; int *p1 = &a; : 변수 a의 주소값을 포인터 변수 p1에 저장한다. *연산자 (.. 2022. 4. 6.
[C언어] CSV 컴마 < , >로 구별된 숫자를 출력하는 프로그램 CSV ','로 구분된 숫자 출력 CSV란? CSV란 Comma-Separated Values의 줄임말로서, 컴마로 구분된 텍스트를 뜻합니다. C언어에서 컴마로 구분된 숫자 문자열을 받아 그 숫자들을 하나씩 출력하는 프로그램을 작성합니다. CSV C언어 코드 간략 설명 6번째 줄 : 진행하는 index의 값이 get_value함수를 벗어나도 기억되도록 static으로 선언합니다. 9번째 줄 : 배열에 저장된 문자열의 길이만큼 반복합니다. 10 ~ 11번쨰 줄 : 만약 i번째 문자가 컴마가 아니고, 숫자인 문자라면, 12 ~ 14번째 줄 : outputNum을 숫자로 채웁니다. 문자 1 2 3 은 123으로 저장되어야하기 때문에 10을 곱하며 진행하고, 또한 문자에서 - '0'만큼 아스키값을 뺌으로서 숫자.. 2021. 12. 8.
[C언어] 단어 개수를 세는 프로그램, 공백으로 단어 구별 단어 개수를 구하는 프로그램 오늘은 공백으로 구별되는 단어 개수를 구하는 프로그램을 작성, 정리하겠습니다. 예를 들어 abc abc abc를 입력받으면 3을 출력해야합니다. 단어는 단지 공백으로만 구별하도록 작성합니다. 이외의 특수문자는 모두 문자와 동일하게 취급합니다. 즉, "!!! !!! !!!" 역시 3을 출력합니다. 단어 개수 코드 1(for문) 저는 아직 코딩이 미숙한 탓인지, 왠만하면 반복문은 while이 아닌 for문을 사용하는 경향이 있습니다. 후에 두 가지 모두 능숙하게 다룰 필요가 있다고 느껴서 오늘은 for문을 이용한 프로그램 구현과 while문을 이용한 프로그램 구현을 모두 해봤습니다. 간략한 설명 9번쨰 줄 : scanf를 이용해 문자열을 받으려면 scanf("%s", str);을.. 2021. 12. 8.
[C언어] 아스키 코드 활용 소문자를 대문자로 바꾸기 아스키 코드 활용 소문자를 대문자로 바꾸기 C언어에서 아스키코드를 활용해 모든 소문자를 대문자로 바꾸는 프로그램을 정리합니다. 여기서 주목할 것은 아스키 테이블 상에서 대문자가 소문자보다 먼저 나온다는 것과, A와 a는 아스키코드상으로 32만큼 차이가 난다는 사실입니다. 소문자를 대문자로 바꾸기 코드 #include int main(void){ char msg[] = "abcdefgABC123"; int i; printf("원본 문자열 : %s\n", msg); for(i = 0; msg[i]; i++){ if('a'=msg[i]) msg[i] = msg[i] - ('a'- 'A'); } printf("바뀐 문자열 : %s\n", msg); return 0; } 간단 설명: 11번째 줄 : msg배열의 .. 2021. 12. 7.