본문 바로가기

Datastructure/[Objection]

문자열 처리함수

728x90
반응형

문자열 길이 구하기: strlen()

strlen()함수를 이용하여 문자열 길이를 출력할 때, 오류가 발생했다고 뜨는 경우가 있는데 이는 형변환을 해주면 해결된다.

#include  <stdio.h>
#include  <string.h>
#include  <stdlib.h>
int main(){
    char str[100];
    scanf("%s",str);
    
    printf("문자열의 길이는 %d입니다."(int)strlen(str));
}

 

문자열 복사하기: strcpy(),strncpy()

strcpy(문자열 B,문자열 A); 문자열 A에 저장된 문자열을 문자열 B에 복사한다.
strncpy(문자열 B,문자열 A,n); 복사할 문자열의 길이를 지정한다.
문자열 A의 처음부터 n개의 문자열을 문자열 B에 복사한다.

 

 

문자열 접합하기: strcat(),strncat()

strcat(문자열 B,문자열 A)); 문자열 A의 끝부터 문자열 B를 접합한다.
strncat(문자열 B, 문자열 A), n); 문자열 A의 끝부터 문자열 B의 시작부터 n번째 문자까지 대입한다.

 

문자열 비교하기: strcmp(),strncpm()

  • 일반적으로 두 문자열을 비교하는 것 == 위치의 비교 
  • 아스키코드로 문자열을 비교
strcmp(문자열A,문자열B); [반환값]
>문자열 동일: 0

>문자열 대/소: +/-

- 문자열 A가 문자열 B보다 작은 경우 -값 반환
strncmp(문자열A,문자열B,n); 문자의 비교를 처음부터 n개까지 비교(반환값은 위와 같은 로직)

 

#include<stdio.h>
#include<string.h>
int main(){
    char str1[100],str2[100];
    scanf("%s",str1);
    scanf("%s",str2);
    printf("%d",(int)strcmp(str1,str2));
}

문자열분리: strtok()

  • 문자열을 여러개의 토큰으로 분리(토큰: 사용자가 지정한 구분 문자로 분리되는 문자열 부분 요소)

(1) 구분 문자 선언

(2) char token = strtok(문자열,구분문자);

(3) 프로그램 실행 후 다음토큰 전달_ token = strtok(NULL,구분문자);

 

#include  <stdio.h>
#include <string.h>
int main(){
    char arr[100] = "Input Your Text";
    char spr[] = " ,\n";
    char *token = strtok(arr,spr);
    while(token != NULL){
        printf("Token: %s\n",token);
        token = strtok(NULL,spr);
    }
    printf("Og arr: %s",arr);


}
위의 코드의 구분 문자는 ,과 공백 그리고 엔터(\n)로 정했다.

 

문자열 변환하기(수로 변환): atoi().atol(),atof()

  • int: atoi(문자열)
  • long: atol(문자열)
  • double: atof(문자열)

 

문자열 및 문자 입출력

문자열 출력: puts() - 문자열 출력 성공 시: ‘\n’반환
- 문자열 출력 실패 시: EOF(-1) 반환
문자열 입력 함수: gets(),sets_s(),fgest() gets(입력받을 문자열)
gets_s(입력받을 문자열, 크기)
gets(str) => fgets(str,sizeof(str),stdin) ;

 

 

728x90
반응형

'Datastructure > [Objection]' 카테고리의 다른 글

유클리드 호제법: 재귀  (0) 2022.01.14
시간 측정 함수  (0) 2022.01.10
Shift 함수 / 시간 계산  (0) 2022.01.10
진수 변환  (0) 2022.01.05
난수 생성 라이브러리  (0) 2022.01.04
댓글