반응형
toupper
함수원형
int ft_toupper(int c)
toupper 라이브러리는 소문자를 대문자로 변경해서 반환하며, 다른 모든 문자는 그대로 반환
- 소문자를 대문자로 변경
- 다른 모든 문자는 그대로 반환
int형으로 받는데 캐스팅 해서 넣어준다음 돌려주면 됨. 굳이 캐스팅 안 해도 됨
#include "libft.h"
int ft_toupper(int c)
{
if (c >= 'a' && c <= 'z')
c = c - 32;
return (c);
}
int main()
{
char str1 = 'a';
// char str2[15] = "abc";
printf("%d\\n", ft_toupper(str1));
// char str3[10] = "abc";
// char str4[15] = "abc";
// printf("%d\\n", strncmp(str3, str4, 3));
}
참고 사이트
[C언어/C++] tolower, toupper 대문자 소문자 변경
tolower
tolower 라이브러리는 대문자를 소문자로 변경해서 반환하며, 다른 모든 문자는 그대로 반환
- 대문자 → 소문자
- 다른 모든 문자 그대로 반환
int형으로 받는데 캐스팅 해서 넣어준다음 돌려주면 됨. 굳이 캐스팅 안 해도 됨
함수원형
int ft_tolower(int c)
#include "libft.h"
int ft_tolower(int c)
{
if (c >= 'A' && c <= 'Z')
c = c + 32;
return (c);
}
int main()
{
char str1 = 'a';
// char str2[15] = "abc";
printf("%d\\n", ft_tolower(str1));
// char str3[10] = "abc";
// char str4[15] = "abc";
// printf("%d\\n", strncmp(str3, str4, 3));
}
참고 사이트
[C언어/C++] tolower, toupper 대문자 소문자 변경
strchr
함수원형
char *ft_strchr(const char *s, int c)
문자열 찾는 라이브러리임.
- 문자열 s를 받아와서 그 문자열 안에 c가 있으면 c가 있는 위치의 주소값을 리턴.
- 만약 문자를 찾지 못 하면 NULL 반환
뒤에 똑같은 문자가 있어도 앞에 있는 친구 주소값 리턴.
예외 처리
(1)c에 널값이 들어왔을 때 처리를 해주어야함.
ca에 널값일 때 처리
(2)c에 확장 아스키 코드 값이 들어올 수 있기에 unsigned char 캐스팅
#include "libft.h"
char *ft_strchr(const char *s, int c)
{
char *temp;
int count;
unsigned char ca;
temp = (char *)s;
ca = (unsigned char)c;
if (ca == '\\0')
{
count = ft_strlen(s);
return (temp + count);
}
while (*temp)
{
if (*temp == ca)
return (temp);
temp++;
}
return (0);
}
int main()
{
char dest[] = "bonjour";
char *first;
// char *last;
/* dest 문자열에서 첫번째 나오는 'b'문자를 찾습니다. */
first = ft_strchr(dest, '\\0');
// /* dest 문자열에서 마지막 나오는 'b'문자를 찾습니다. */
// last = strrchr(dest, 'b');
printf("first : %s \\n", first);
// printf("last : %s", last);
return 0;
}
참고 사이트
strchr, strnstr, strncmp 함수 구현
반응형
'42Seoul > libft' 카테고리의 다른 글
libft - strnstr, atoi, calloc (0) | 2023.03.24 |
---|---|
libft - strrchr, memchr, memcmp (2) | 2023.03.24 |
libft - strlcpy, strlcat, strncmo (0) | 2023.03.24 |
libft - bzero, memcpy, memove (0) | 2023.03.24 |
libft - isascii, isprint, memset (0) | 2023.03.24 |