오늘은 ps에 심심하면 많이 등장하는 '문자열을 숫자로 바꾸는' 함수에 대해서 알아보도록 하겠습니다. 이건 구현 문제를 풀다 보면, 정말 심심하면 하나씩 툭 튀어나옵니다. 보통 저는 sscanf로 문자열을 숫자로 convert를 하고, 역변환을 할 때에는 sprintf를 쓰는 편입니다. 그런데 사실, atoi 정도는 알아두셔도 크게 나쁘지는 않을 듯 싶네요. int atoi(const char *pat); pat을 받아서, 숫자로 변환을 해 줍니다. 당연하게도 변환을 할 수 없는 경우에는 0이 리턴이 되는데요. "0"을 atoi한 결과와 구분이 되지 않기 때문에 주의해야 합니다. 기본 예제를 보도록 하겠습니다. 7번째 줄에, 두 개의 문자열을 입력받았습니다. 각각 "-27"와 "3"을 입력했습니다. 그 ..
레퍼런스 검색 결과
C언어로 코딩하실 때, 파싱 문제를 만날 때 가장 많이 쓰는 함수는 strtok입니다. 물론, 저는 strchr 조합을 더 많이 쓰긴 합니다만. 익혀두면 편한 쪽은 오늘 소개하는 함수입니다. 함수 원형을 소개하지 않겠습니다. 거의 정석처럼 사용되는 패턴 정도만 소개하도록 하겠습니다. 먼저 '#'을 구분자로 끊어내 봅시다. 보시면 strtok의 1번째 인자에는 parsing을 할, 대상체가 들어가 있습니다. 예를 들자면, "abcd#efg#hijk"와 같은 것들입니다. 그리고, 2번째 인자에는 구분자 집합이 들어가는데요. 여기에서 우리는 '#'을 기준으로 자를 것이므로 '#'만 넣었음을 알 수 있습니다. 12번째 줄이 핵심인데요. strtok는 문자열의 포인터를 리턴해 줍니다. 문자열의 끝에 도달하면, N..
String의 indexOf는 어떤 식으로 동작할까요? indexOf를 호출하면, 내부에서, 인자를 7개를 받는 함수가 호출이 되는데요. 1번째 source는 어떠한 문자열에서 찾을 것인지, target은 패턴을 의미합니다. 예를 들어서, "abababb"에서 "ab"를 찾는다고 한다면, "abababb"는 source가 되고, target은 "ab"가 됩니다. fromIndex는, string의 어느 위치부터 탐색을 할 것인지에 대한 정보를 담고 있는데요. 예를 들어서 string이 "abcde"라고 하고, 1번째 위치부터 탐색한다면 fromIndex는 1이 됩니다. 아래 코드들을 봅시다. 뭔가 조금 복잡해 보이는데요. fromindex가, string에서 어느 위치부터 탐색을 시작할 것인지를 나타냅니..
Java에서 구분자를 기준으로 문자열을 자르는 방법은 몇 가지가 있습니다. 이 중, StringTokenizer를 간단하게 알아보도록 하겠습니다. 그 전에, token이랑, 구분자에 대해서 간단하게 짚고 넘어갑시다. 먼저 "a,ha,d"라는 문자열이 있습니다. 저는 ,를 기준으로 분리를 해 보겠습니다. 이 때, ,를 구분자라고 이야기를 합니다. 문자열을 ,를 기준으로 나눈 셈인데요. 구분자를 보라색으로 표시해 보겠습니다. 그러면 그것에 의해서 "a,ha,d"가 "a", "ha", "d"로 분리가 됩니다. 이러한 것들을 각각 토큰이라고 이야기를 합니다. 만약에 구분자가 ','와 ' '인 경우, 요런 식으로 쪼개질 수 있어요. "a", "a", "d". 아니면 "a"와 "", "a", "d" 순서로 쪼개지거..
오늘은 ctime 함수에 대해서 알아봅시다. 이것은, time_t형을 우리가 알아보기 쉬운 형식인, 예를 들어서 2019-8-25 SUN 11:41:15 형식으로 바꾸는 함수입니다. 물론, 형식을 지정하는 함수도 있습니다만, 이건 다음에 배워보기로 합시다. char *ctime(time_t *tar); 사용 방식은 time_t형 tar의 주솟값을 넘겨줍니다. 그러면, 1970년 1월 1일 0:0:0 UTC+0을 기준으로 tar초만큼 경과가 되었을 건데요. 만약에 로컽 타임을 한국 시간으로 설정했다면, 1970년 1월 1일 9:0:0 UTC+9겠네요. 기준 시간이. 그로부터 경과된 시간만큼 지났을 때, 몇 년도 몇 월 몇 일이고, 몇 시 몇 분 몇 초인가를 문자열 형태로 리턴하는 함수입니다. 대략적으로 c..
최근댓글