일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vscode
- Kotlin
- foreground service
- 소켓프로그래밍
- 자료구조
- ws2_32.lib
- UI
- 콘솔 키보드 이벤트
- InfluxDB
- dictionary
- dart
- 코틀린
- Linked List
- 연결리스트
- Android
- FTP
- 문자열다루기
- background service
- flutter
- socket
- 문자열파싱
- 파일입출력
- Mat 변수
- 문자열 다루기
- 딕셔너리
- 메모리반환
- C
- vs code
- InfluxDBClient
- 진수변환기
- Today
- Total
목록문자열다루기 (5)
무슨 일로 C 하셨습니까?
내가 만든 함수들을 사용하다 문득 하나가 빠졌다는 생각이 들었다. 문자열 복사... 어쩌면 가장 먼저 나왔어야할 함수인데... 지난번에 만든 문자열 합성 함수를 쓰면 되긴 하는데 매번 빈문자열도 같이 집어넣기 귀찮으므로 하나 만들겠다. 데이터 복사하는 것이야 어려운 일이 아니다. int num = 3; int ber= num; num = 4; printf("%d",num); // 4 printf("%d",ber); // 3 대입 연산자('=')는 오른쪽의 값을 왼쪽에 복사하는 것이기 때문에 대입 연산자를 쓰기만 해도 데이터는 복사가 된다. 그러나 데이터가 배열인 경우는 이야기가 다르다 int num[3] = {1,2,3}; int ber[3]; int* ptr; num = ber; // 컴파일 에러 pt..

한가롭게 토익준비나 하고 있는데 급하게 처리해야할 일이 생겼다. 엑셀파일에서 특정 특정데이터를 다른 데이터로 바꿔야하는데 엑셀파일을 직접 열어서 수정해도 되고 자동으로 변환해주는 프로그램을 만들어도된다. 일일이 수정하는건 컴공과로써 자존심이 허락하지 않는다 물론 프로그램으로 만들때 C#이나 자바 파이썬으로하면 편할텐데 굳이 C로 구현해야 제맛이기 때문에, 그것도 헤더참조하지 않고 직접해야 제맛이다. 고로 해당 프로그램에 핵심 작업을 하게될 문자열 치환함수를 만들어보겠다. 함수 기능 문자열에서 문자열(문자)를 특정 문자열(문자)로 치환시킴 입력값 source(문자열), From(문자열), To(문자열) 반환값 문자열(Token) 배열 치환된 문자열 char* StringSwitcher(char* Src, ..

솔직히 문자열 다루는 항목에선 가장 고급기술이 아닐까 싶다. 물론 이 기능을 하는 함수도 에 존재하지만 직접 구현해 볼것이다. 간단히 구상해보면 기본 문자열(Source)에서 특정 구분자[문자열/문자](separator)를 기준으로 나누어서 각 문자열들을 배열의 형태로 반환시키도록 할 것이다. 함수 기능 문자열을 특정 문자열(문자)을 기준으로 나눔 입력값 source(문자열), separator(문자열) 반환값 문자열(Token) 배열 나누어진 여러 문자열들 char** g(char* Src, char* Sep) { return NULL; } ( Src : Source / Sep : Separator -> 구분자 ) 함수를 선언해준다. 이전에 만든 함수를 통해 Source에서 Separator가 얼마나 ..

문자열 검색 기능은 실제론 많이 사용해 본적이 없다. 그러나 다음에 구현해 볼 문자열 토큰함수를 위해 미리 구현해야 한다. 구현에 앞서 잠깐 설계를 해보자면 source가 될 문자열과 해당 문자열에서 찾을 문자 혹은 문자열 target, 을 입력하고 반환값으로 source에 target이 얼마나 포함되어있는지와 포함되어있는 인덱스들을 함께 정수형 배열로 반환할 것이다. 함수 기능 문자열에서 특정 문자열의 위치를 찾아내는 함수 입력값 source(문자열), target(문자열) 반환값 정수형 배열 일치하는 위치 수, 각 위치들 함수를 선언해준다 int* f(char* Src, char* Target) { return NULL; } 반환할 정수형 배열의 크기는 1 + n인데 ( n: 문자열이 일치된 위치들,..
C에도 기본적으로 제공되는 함수들이 매우 많아서 몇개의 헤더파일만 포함시켜도 다양한 함수를 사용할 수 있다. 그런데 난 굳이 직접 만들어서 사용할 것이다. 최소한의 헤더만을 사용해서 이번엔 그 대상을 문자열로 하겠다. 실제로 많은 데이터를 문자열로 다루는데 문자열 함수가 생각보다 많이 불친절하다고 느꼈기 때문에 직접 만들어 쓰겠다. 그 시작은 문자열 합성함수이다. 시작은 이름없는 함수 선언부터 시작한다. char* f(char* HeadString, char* TailString) { return NULL; } 두 문자열을 합해서 반환하는 함수를 구현하겠다. 순서는 당연히 head-tail순이다. int HeadLen = StringLength(HeadString); int TailLen = String..