ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어) 문자열 처리 함수 정리
    컴퓨터 공부/C언어) 백준 단계별 풀이 2020. 3. 19. 14:06

    #include <string.h> 추가!!

     

    strlen : 문자 길이 반환 (\0 나타난 곳의 번호)

    -> strlen(str)

     

    strcpy : 문자열 전체 복사 (\0문자 까지만 복사)

    -> strcpy(str, "Hello");

        strcpy(str1, str2);

    strncpy: 문자열 n바이트 복사

     

    strcat : 문자열 나란히 붙이기 (\0부터 붙이기, 메모리 초과 주의!)

    -> strcat(str1,str2);

     

    strcmp/ strncmp : 문자열 비교 (전체 비교 : \0있는 곳까지만 비교)

    -> strcmp (str1, str2);

    -> 같으면 0 반환, 다르면 0아닌 수

    ex) if(!strcmp(str1,str2)) printf("same");

     

    strchar/ strstr : 문자/문자열 위치 (주소, 포인터) 반환, 없으면 NULL 반환

    ->strchar (str, 'a');

    ->strstr(str,"ll");

     

    ex) 문장 속 "ll" 찾아서 "nn"으로 바꾸기

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    
    int main() {
    	char *f;
    	char str1[30] = "hello well hell"; //원본
    	char str2[30]; //사본
    	strcpy(str2, str1); //복사
    
    	f = str2;
    	f = strstr(f, "ll");
    
    	while (f != NULL) { //없으면 null
    		*f = 'n'; //n으로 바꾸기
    		*(f + 1) = 'n';
    		f++; //다음으로 이동
    		f = strstr(f, "ll");
    	}
    	printf("%s", str2);
    }

     

    strtok : 토큰 단위로 자름, 자른 토큰이 저장된 곳의 위치 (포인터)로 반환, 없으면 NULL

    -->strtok(str,",.-? ");

    -->str(NULL,",.-? "); //두번째부터는 null써 줌!

     

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    
    int main() {
    	char str[100] = "hello bye world hey";
    	char *token;
    	
    	token = strtok(str, " "); //첫 토큰
    
    	while (token != NULL) { //더 이상 토큰이 없을때까지 반복
    		printf("%s\n", token);
    		token = strtok(NULL, " "); //다음 토큰
    	}
    }
Designed by Tistory.