strlen, strcmp, strcpy 조사 및 구현해보기

String.h

strlen, strcmp, strcpy등과 같은 문자열과 관련된 함수들이 작성되어 있는 헤더입니다.

strlen

strlen는 문자열의 길이를 구하기 위한 함수입니다. (length -> len)
strlen는 아래와 같이 사용합니다.

#include <stdio.h>
#include <string.h>
int main() {
int length;
char arr[1000];
printf("길이를 알고싶은 문자열을 입력하세요 : ");
gets(arr);
length = strlen(arr);
printf("문자열의 길이는 %d 입니다.\n", length);
return 0;
}

그리고 다음과 같이 구현할 수 있습니다.

#include <stdio.h>
int strlen(char* arr) {
int i, count = 0;
for (i = 0; arr[i] != '\0'; i++) {
count++;
}
return count;
}

int main() {
int length;
char arr[1000];
printf("길이를 알고싶은 문자열을 입력하세요 : ");
gets(arr);
length = strlen(arr);
printf("문자열의 길이는 %d 입니다.\n", length);
return 0;
}

strcmp

strcmp는 두 문자열을 비교하기 위한 함수입니다. (compair -> cmp)
strcmp는 아래와 같이 사용합니다.

#include <stdio.h>
#include <string.h>
int main() {
char arr1[1000], arr2[1000];
int cmp;
printf("문자열 입력 : ");
gets(arr1);
printf("비교할 문자열 입력 : ");
gets(arr2);
cmp = strcmp(arr1, arr2); // 같을경우 0, 다를경우 -1, 1을 리턴합니다.
if (cmp == 0) {
printf("두 문자열은 일치합니다. \n");
}
else {
printf("두 문자열은 일치하지 않습니다. \n");
}
return 0;
}

그리고 아래와 같이 구현할 수 있습니다.

#include <stdio.h>
int strcmp(char* arr1, char* arr2) {
int i, j, count = 0, cnt = 0;
for (i = 0; arr1[i] != '\0'; i++)
cnt++;
for (j = 0; arr2[j] != '\0'; j++) {
if (arr1[j] == arr2[j]) {
count++;
}
}
if (count == cnt) {
return 1;
}
else {
return 0;
}
}

int main() {
char arr1[1000], arr2[1000];
int cmp;
printf("문자열 입력 : ");
gets(arr1);
printf("비교할 문자열 입력 : ");
gets(arr2);
cmp = strcmp(arr1, arr2); // 같을경우 1, 다를경우 0을 리턴합니다.
if (cmp == 1) {
printf("두 문자열은 일치합니다. \n");
}
else {
printf("두 문자열은 일치하지 않습니다. \n");
}
return 0;
}

strcpy

strcpy는 문자열을 복사해주는 함수입니다. (copy -> cpy)
strcpy는 아래와 같이 사용합니다.

#include <stdio.h>
#include <string.h>
int main()
{
char arr1[1000], arr2[1000];
printf("복사할 문자열을 입력하세요(arr1) : ");
gets(arr1);
strcpy(arr2, arr1);
printf("결과(arr2) : %s\n", arr2);
return 0;
}

그리고 아래와 같이 구현할 수 있습니다.

#include <stdio.h>
int main() {
int i, j, nul;
char arr1[1000], arr2[1000];
printf("복사할 문자열을 입력하세요(arr1) : ");
gets(arr1);
for (i = 0; arr1[i] != '\0'; i++) {
arr2[i] = arr1[i];
nul = i;
}
arr2[nul + 1] = '\0';
printf("결과(arr2) : %s\n",arr2);
return 0;
}
Total views

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×