문제를 풀면서 함수를 살펴 보겠습니다.
<문제>
키보드로 입력한 단어의 길이가 5자를 넘는 경우 6자부터 별(*)을 출력하는 프로그램을 작성합니다. 단어의 최대 길이는 15자로 제한합니다. (실행창에 출력되는 결과는 제가 작성한 main 함수를 참고해주세요)
#include <stdio.h>
int ft_strlen(char *str)
{
int size;
size = 0;
while (*str != '\0')
{
size++;
str++;
}
return (size);
}
char *ft_strncpy(char *dest, char *src, unsigned int size)
{
char *po;
int count;
count = 0;
po = dest;
while (*src != '\0' && size > count)
{
*dest++ = *src++;
count++;
}
return (po);
}
char *ft_strncat(char *dest, char *src, unsigned int size)
{
char *po;
unsigned int count;
count = 0;
po = dest;
while (*dest != '\0')
{
dest++;
}
while (*src != '\0' && size > count)
{
*dest++ = *src++;
count++;
}
*dest = '\0';
return (po);
}
char *ft_strcpy(char *dest, char *src)
{
char *po;
po = dest;
while (*src != '\0')
{
*dest++ = *src++;
}
*dest = '\0';
return (po);
}
int main(void)
{
char str[15];
char res[15];
char *star = "**********";
int size;
printf("input : ");
scanf("%s", str);
size = ft_strlen(str);
if (size > 5)
{
ft_strncpy(res, str, 5);
res[5] = '\0';
ft_strncat(res, star, size - 5);
}
else
ft_strcpy(res, str);
printf("not changed words : %s, changed words : %s\n", str, res);
return 0;
}
'C언어' 카테고리의 다른 글
[혼공C] 목차 정리 (0) | 2021.10.11 |
---|---|
[혼공C] 13-1 변수의 영역과 데이터 공유 (0) | 2021.10.09 |
[혼공C] 12-2 대입 연산자를 사용한다면 배열 선언과 동시에 문자열 초기화는 국룰 (0) | 2021.10.08 |
[혼공C] 12-1 gets 함수를 사용한 문자열 입력(puts, fgets, fputs) (0) | 2021.10.07 |
[혼공C] 12-1 scanf 함수를 사용한 문자열 입력 (0) | 2021.10.07 |
문제를 풀면서 함수를 살펴 보겠습니다.
<문제>
키보드로 입력한 단어의 길이가 5자를 넘는 경우 6자부터 별(*)을 출력하는 프로그램을 작성합니다. 단어의 최대 길이는 15자로 제한합니다. (실행창에 출력되는 결과는 제가 작성한 main 함수를 참고해주세요)
#include <stdio.h>
int ft_strlen(char *str)
{
int size;
size = 0;
while (*str != '\0')
{
size++;
str++;
}
return (size);
}
char *ft_strncpy(char *dest, char *src, unsigned int size)
{
char *po;
int count;
count = 0;
po = dest;
while (*src != '\0' && size > count)
{
*dest++ = *src++;
count++;
}
return (po);
}
char *ft_strncat(char *dest, char *src, unsigned int size)
{
char *po;
unsigned int count;
count = 0;
po = dest;
while (*dest != '\0')
{
dest++;
}
while (*src != '\0' && size > count)
{
*dest++ = *src++;
count++;
}
*dest = '\0';
return (po);
}
char *ft_strcpy(char *dest, char *src)
{
char *po;
po = dest;
while (*src != '\0')
{
*dest++ = *src++;
}
*dest = '\0';
return (po);
}
int main(void)
{
char str[15];
char res[15];
char *star = "**********";
int size;
printf("input : ");
scanf("%s", str);
size = ft_strlen(str);
if (size > 5)
{
ft_strncpy(res, str, 5);
res[5] = '\0';
ft_strncat(res, star, size - 5);
}
else
ft_strcpy(res, str);
printf("not changed words : %s, changed words : %s\n", str, res);
return 0;
}
'C언어' 카테고리의 다른 글
[혼공C] 목차 정리 (0) | 2021.10.11 |
---|---|
[혼공C] 13-1 변수의 영역과 데이터 공유 (0) | 2021.10.09 |
[혼공C] 12-2 대입 연산자를 사용한다면 배열 선언과 동시에 문자열 초기화는 국룰 (0) | 2021.10.08 |
[혼공C] 12-1 gets 함수를 사용한 문자열 입력(puts, fgets, fputs) (0) | 2021.10.07 |
[혼공C] 12-1 scanf 함수를 사용한 문자열 입력 (0) | 2021.10.07 |