컴퓨터/C
C언어에서는 문자열을 처리하기 위해서 기본적인 함수들을 제공하고 있습니다. 문자열을 처리를 하기 위해서는 C언어의 특성상 불편한 점이 많이 때문입니다. C언어에서는 이런 문자열을 처리하기 위한 String 라이브러리를 제공합니다.
이렇게 제공되는 함수들을 알아보고 사용법을 알아보도록 하겠습니다.
String 라이브러리를 사용하기 위해서는 꼭 헤더파일인 String.h를 넣어주어야 합니다.
C언어에서 strlen 함수는 String length를 의미합니다 즉, 문자열의 길이를 확인할 수 있는 함수입니다.
함수의 원형은 아래와 같습니다.
#include <string.h>
size_t strlen(const char* s);
//// strlen(문자열주소) --> 문자열의 길이 반환 /////
#include<stdio.h>
#include<string.h>
int main()
{
char str1[] = "Hello World";
char str2[50] = "Hello World";
//함수로 문자열의 길이 구하기
int str1_length = strlen(str1);
printf("str1의 문자열 길이 : %d\n", str1_length);
printf("str2의 문자열 길이 : %d\n", strlen(str2));
//함수로 문자열 변수의 크기 구하기
printf("str1 문자열 변수의 크기 : %d\n", sizeof(str1));
printf("str2 문자열 변수의 크기 : %d\n", sizeof(str2));
return 0;
}
위의 두 함수는 서로 다른 문자열을 합치는 경우 사용합니다.
두 함수 모두 문자를 합치기 위해 동일하게 사용되나 strncat함수는 합치는 문자열의 길이를 제한합니다.
함수의 원형은 아래와 같습니다.
#include<sting.h>
char* strcat(char* restrict s1, const char* restrict s2);
///// strcat(이어붙일 위치 문자열주소,이어붙일 대상 문자열주소) /////
char* strncat(char* restrict s1, const char* restrict s2, size_t n);
///// strcat(이어붙일 위치 문자열주소,이어붙일 대상 문자열주소 , 이어붙일 문자열의 크기 제한) /////
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
char str1[15] = "hello";
char str2[20] = " world";
printf("%s\n", strcat(str1, str2));
char str3[9] = "hello";
char str4[20] = " world";
printf("%s\n", strncat(str3, str4,(sizeof(str3) - strlen(str4)))); // 붙여 넣을 크기를 제한
return 0;
}
이 함수들은 문자열을 복사하는 함수입니다.
원형은 다음과 같습니다.
#include<string.h>
char *strcpy(char* restrict s1,const char* restrict s2);
char *strcpy(char* restrict s1,const char* restrict s2,size_t n);
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
char str1[15] = "hello";
char str2[20] = "";
strcpy(str2, str1);
printf("%s\n", str2);
char str3[9] = "hello";
char str4[3] = "";
strncpy(str4, str3, sizeof(str4)-1);
printf("%s\n", str4); // 붙여 넣을 크기를 제한
return 0;
}
이 함수들은 문자열의 내용을 비교하는 함수입니다.
함수의 원형은 다음과 같습니다.
#include <string.h>
int strcmp(const char*s1,const char* s2);
int strcmp(const char*s1,const char* s2,size_t n);
//// 완전히 같으면 0을 반환
//// 첫번째 매개변수의 문자열이 길면 양수 반환
//// 두번째 매개변수의 문자열이 길면 음수 반환
#include<stdio.h>
#include<string.h>
int main()
{
char str[10] = "hello";
int check = strcmp(str, "hello");
printf("%d\n", check);
int check2 = strcmp(str, "hell");
printf("%d\n", check2);
int check3 = strcmp(str, "world!!!");
printf("%d\n", check3);
return 0;
}
C 언어 - 쓰래기값과 초기화 (0) | 2021.06.30 |
---|---|
C 언어 - 열거체(enum) (0) | 2021.06.30 |
C 언어 - sizeof 함수 (0) | 2021.06.29 |
C 언어 - 함수의 원형 선언 (0) | 2021.06.29 |
C 언어 - 소스파일 나누기 (0) | 2021.06.28 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet