스트링 검색 및 변환
1) strstr , strchr, strrchr
#include <string.h>
void main()
{
char s1[30] = "qazwsxedcrfvtgbyhn";
char *ptr = strchr(s1, 'a'); //from left
char *ptr2 = strrchr(s1, 'a'); //from right
char *ptr3 = strstr(s1, 'az');
while (ptr != NULL) {
printf("%s\n", ptr);
ptr = strchr(ptr + 1, 'a');
}
}
2) strtok
strtok 사용 시 원본 문자열이 변형되므로 주의할 것
char s1[30] = "2015-06-10T15:32:19";
char *ptr = strtok(s1, "-T:");
while (ptr != NULL) {
printf("%s\n", ptr);
ptr = strtok(NULL, "-T:");
}
3) 문자열 숫자 변환
https://dojang.io/mod/page/view.php?id=386
C 언어 코딩 도장: 46.2 특정 진법으로 표기된 문자열을 정수로 변환하기
이번에는 특정 진법으로 표기된 문자열을 정수로 변환해보겠습니다. strtol 함수를 사용하면 16진법으로 표기된 문자열을 정수로 바꿀 수 있으며 함수 이름은 string to long에서 따왔습니다(stdlib.h 헤더 파일에 선언되어 있습니다). strtol(문자열, 끝포인터, 진법); long strtol(char const *_String, char **_EndPtr, int _Radix); 성공하면 변환된 정수를 반환, 실패하면 0을 반환 stri
dojang.io
4) 그외 문자열 변환 처리
[C언어] 문자열 자르기( strtok() ) / 문자열과 숫자 서로 변환하기 ( atoi(), strtol(), atof(), strtof() ) / 회문 판별, N-gram 만들기
문자열 자르기( strtok() ) / 문자열과 숫자 서로 변환하기 ( atoi(), strtol(), atof(), strtof() ) / 회문 판별, N-gram 만들기에 대해서 정리한다. 문자열 자르기 - strtok(대상문자열, 기준문자); ( 기준문자..
btyy.tistory.com
5) 두문자열이 교차하면서 유사도 확인 ( 동일 글자가 몇개 있는지 확인 )
firstStr: GTTAG -> secondStr: <- AGTCATG same : 문자열 교차시 같은 글자가 가장 많은 것 swapIndex : 첫번째 문자열이 모두 이동되어 두번째 문자열이 왼쪽으로 이동 firstStr, secondStr : 교차할 문자열 for(int swapindex=0; swapIndex<2; swapIndex++) { int len1 = strlen(firstStr); int len2 = strlen(secondStr); char tmpStr[MAX]; int pos=0; for(int i=0; i<len1; i++) { int similarity =0; memset(tmpStr, 0, sizeof(char)*MAX); strncpy(tmpStr, firstStr, sizeof(char) * (++pos)); for(int j=0; j<strlen(tmpStr); j++) { if(tmpStr[j] == secondStr[len2 - pos +j]) similarity++; } if(same < similarity) same = similarity; } memset(tmpStr, 0, sizeof(char) * MAX); strcpy(tmpStr, firstStr); strcpy(firstStr, secondStr); strcpy(secondStr,tmpStr); }