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) 그외 문자열 변환 처리
https://btyy.tistory.com/222
[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);
}