Profile

Choih0401 Story

Choih0401

Layer7 6번 과제(문자열 함수 구현)

1. Strlen 문자열 함수 구현


1
2
3
#include <string.h> // C++ 에서는 <cstring>
 
size_t strlen ( const char * str );
cs


문자열의 길이를 구하는 함수(문자열의 시작부터 NULL값 까지의 문자 개수를 센다.)


1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <string.h>
 
int main ()
{
    char szInput[100];
    printf ("문장을 입력하세요 : ");
    gets (szInput);
    printf ("문장의 길이는 : %u 입니다.\n",strlen(szInput));
    return 0;
}
cs


- 문장의 길이를 구하는 strlen 함수 예제 -


2. Strcpy 함수 구현


1
2
3
#include <string.h> // C++ 에서는 <cstring>
 
char * strcpy ( char * destination, const char * source );
cs


source가 가리키는 값을 destination에 복사한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
 
int main ()
{
    char str1[]="Layer7";
    char str2[40];
    char str3[40];
    strcpy (str2,str1);
    strcpy (str3,"copy successful");
    printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
    return 0;
}
cs


- 문자열을 복사하는 Strcpy 함수 예제 -


3. Strcmp 함수 구현


1
2
3
#include <string.h> // C++ 에서는 <cstring>
 
int strcmp ( const char * str1, const char * str2 );
cs


str1값이 str2값 보다 큰 경우 1, 같을 경우 0, 작은 경우 -1을 반환한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <string.h>
 
int main ()
{
    char answer[] = "Layer7";
    char Input[80];
    do {
        printf ("동아리를 맞추세요 : ");
        gets (Input);
    } while (strcmp (answer,Input) != 0);
 
    printf("정답입니다.\n");
    return 0;
}
cs


- 문자열을 비교하여 맞는지 확인하는 Stercmp 예제 -




--------------------(string.h를 쓰지 말고 하래요)----------------------



1. Strlen 함수 구현


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int a(char *string) {
    int count = 0;
    while (string[count] != '\0') {
        ++count;
    }
    return count;
}
 
int main(int argc, char const *argv[]) {
    char arr[] = "asdfgh";
    printf("%d\n", a(arr));
    return 0;
}
cs




2. Strcpy 함수 구현


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
char* strcpy(char* arr, const char* arr2);
 
int main() {
    char str[255= "abcdefghijk";
    printf("%s\n", strcpy(str, "abcd"));
}
 
char* strcpy(char* arr, const char* arr2)
{
    int i = 0;
    while (arr2[i] != '\0')
    {
        arr[i] = arr2[i];
        i++;
    }
    arr[i] = '\0';
    return arr;
}
cs




3. Strcmp 함수 구현



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <string.h>
 
int strcmp1(char *a, char *b);
 
int main(void)
{
    char arr1[10= "AA";
    char arr2[10= "AA";
 
    char arr3[10= "AA";
    char arr4[10= "Aa";
 
    char arr5[10= "Aa";
    char arr6[10= "AA";
 
    printf("%d\n", strcmp(arr1, arr2));
    printf("%d\n", strcmp1(arr1, arr2));
 
    printf("%d\n", strcmp(arr3, arr4));
    printf("%d\n", strcmp1(arr3, arr4));
 
    printf("%d\n", strcmp(arr5, arr6));
    printf("%d\n", strcmp1(arr5, arr6));
 
    return 0;
}
 
int strcmp1(char *a, char *b)
{
    while (*!= '\0' || *!= '\0')
    {
        a++;
        b++;
 
        if (*== *b)
        {
            continue;
        }
        else if (*> *b)
        {
            return 1;
        }
        else if (*< *b)
        {
            return -1;
        }
    }
 
    return 0;
}
cs