본문 바로가기

개발

C 언어 strtok & strtok_s strok는 tokenizing을 해주는 함수이다. 이게 뭐냐면, char *str = "here#is#the#example"; 이런 문자열이 있을 때 strtok(str, "#")이렇게 해주면 할 때마다 here, is, the, example 이렇게 순서대로 잘라서 반환해주는 것이다. 아래의 예제를 보면 바로 이해가 될 것이다. 12345678910111213141516#include #include #include int main() { char str[] = "there#is#no#spoonnn"; char delim[] = "#"; char *token; token = strtok(str, delim); while (token != NULL) { printf("%s : %d\n", token, ..
C 언어 - 자주 사용하는 함수 read_line 엔터 단위로 한 줄씩 문자열을 받아 와서 뭔가 작업을 해 주고 싶다. 일단 scanf는 불가하다(엔터 단위이므로). 그럴 때 쓰려고 만든 함수이다. 123456789int read_line(char * buffer, int n) { int i = 0; char c; while ((c = getchar()) != '\n') if (i
C 언어 - strdup / _strdup 문자열을 다루다 보면 어떤 입력을 받아와서 저장하고, 또 다시 입력을 받아서 저장하고, 이럴 일이 많다. 12345678910111213141516171819202122#include #include #include int main(){ char temp[20]; char* save[20]; int i = 0; for (int ite = 0; ite
C 언어 도서 관리 프로젝트 C언어의 기초 개념들이 들어 있는 프로젝트, 도서 관리 프로젝트이다. 최종적으로 이러한 것을 만들 것이다. 콜솔이라 다소 조잡해 보이지만, 중요한 것은 내용이다!! API는 다 까먹었다!!! (충!성!) 내가 직접 도서관을 만든다고 생각하면서 차근차근 해야 할 것들을 생각해 보자. 우선 도서관에 있는 책들을 전산에 쓸 수 있도록 문서화해야 한다. 이것이 1번, 책을 새로 추가하기이다. 책들의 정보를 하나하나 추가해 주면서 총 몇권이 있는지도 확인해 주어야 할 것이다. 다음, 도서관에는 책들이 많다. 그래서 검색을 할 수가 있어야 한다. 검색을 하는 옵션으로는 1. 책 이름으로 검색2. 저자로 검색3. 출팔사로 검색 등을 생각해 볼 수 있을 것이다. 검색을 했다면, 책을 빌리고 반납할 수 있는 기능이 있어..
C 언어 - 두고두고 쓰기 위한 문자열 search 함수 예를 들어서 the biggest theater in our city is there~ 이런 문장이 있다고 하자. 이 문장에서 there이라는 단어의 위치를 알고 싶을 때 사용하는 함수이다. the biggest theater in our city is there~there there there(!!!) the 부분까지는 탐색을 계속하다가, r부분에서 불일치를 발견하고, 다시 다음 단어로 건너갔다. 이러한 기능을 하는 함수이다. 아마도 라이브러리에 더 완벽한 것이 있을 테지만... 1234567891011121314151617181920212223242526char search_str(char * dic, char * word) { int loc = 0; int search_loc = 0; while (..
파이썬 2차원 배열 생성 요즘들어 파이썬을 많이 사용하는데, 기초적인 튜토리얼 업싱 하려다 보니 아무래도 자주 막히는 면이 있다. 특히나 파이썬은 제공하는 기능이 너무나 많다. ㅠㅠ 이러쿵 저러쿵 해서 해결하면 사실 이미 제공하는 함수가 있는 경우가 다반사이다. 자주 잊어버리는 2차원 배열 생성을 정리한다. 우선, 나는 이렇게 실수하는 경우가 잦은데, 123456789101112arr = []list = []count = 0for i in range(3): for j in range(2): count += 1 list.append(count) arr.append(list) list.clear() for i in range(len(arr)): print(arr[i])cs 이렇게 하면 결과는 아무것도 안나온다... list의 생성을..
C 언어 - 파일 입출력 C언어 파일 입출력을 공부해 보았다. 사실 여기는 C보다는 파이썬이 압도적으로 쓰기 편하다. 그치만 나는 C를 사랑하는 전자과다. 예제를 보면서 시작해보자 12345678910111213141516#include int main() { FILE *fp; fp = fopen("a.txt", "w"); if (fp == NULL) { printf("error"); return 0; } fputs("hello world!!\n", fp); fclose(fp); return 0;}cs 이렇게 예제를 돌리면 될 줄 알았지?? 역시 안된다~~ fopen때문에 warning이 뜬다. 나는 찝찝한 것은 참지 못하기에 fopen_s를 사용하겠다! 12345678910111213141516171819#include int..
C 언어 if-elseif-else문을 한 줄로! 12345678910__inline int max(int a, int b){ if (a > b) return a; else return b;}int main(int argc, char **argv) { printf("3 과 2 중 최대값은 : %d", max(3, 2)); return 0;}Colored by Color Scriptercs 다음과 같은 인라인 함수가 있다고 하자, 사실 두 수 중에서 큰 값을 반환하는 아주 간단한 함수이고, 그래서 인라인 함수로 만든 것이기도 하다. 이를 함수로 따로 만들지 않고 한 줄로 표현하고 싶다면 어떻게 해야 할까?? 1234int main(int argc, char **argv) { printf("%d 과 %d 중 최대값은 : %d \n", 3, 2, 3 > 2 ..