본문 바로가기
반응형

전체 글147

C040_strlen 함수 구현해서 사용하기 우선 strlen함수를 사용해 봅시다. strlen은 문자열의 길이를 측정해 주는 함수입니다. #include #include int main() { printf("%d\n", (int)strlen("abcd")); return 0; } strlen은 어떤 자료형으로 출력을 할 것인지 정해주어야 합니다. 즉, 크기를 정해주어야 합니다. 저희가 이번에 만들 strlen함수는 int자료형을 반환해 주는 함수를 만들어 보도록 하겠습니다. strlen int OdOp_strlen(char *str) { int i; i = 0; while (str[i] != '\0') i++; return (i); } str문자열의 index를 기준으로 null문자가 나올 때까지 하나하나 읽습니다. null이 나온 인덱스 번호가.. 2023. 12. 8.
putnbr_base, 숫자를 진법으로 변환하기 입력받은 숫자를 진법으로 변환하여 출력하는 방법에 대해 알아보도록 하겠습니다. 우선 진법인 base가 적절한 형태로 되어 있는지 확인해 봅시다. OdOp_base int OdOp_base(char *base) { int n; int i; n = 0; while (base[n] != '\0') { i = 0; if (base[n] == '+' || base[n] == '-') return (0); else if (base[n] == 32 || (base[n] >= 9 && base[n] n - 1) { OdOp_putnbr(nbr / n, base, n); } write(1, &base[nbr % n], 1); } nbr을 n으로 나누어서 나오는 나머지를 가지고 base에서 원하는 부분을 추출합니다. 그전.. 2023. 12. 7.
C039_putnbr만들기 write함수만을 사용해서 정수형을 출력해 보도록 하겠습니다. OdOp_putnbr #include void OdOp_putnbr(int nb) { char c; int i; if (nb == -2147483648) { write(1, "-2147483648", 11); return ; } else if (nb 9) { i = nb / 10; OdOp_putnbr(i); nb = nb % 10; } c = nb + 48; write(1, &c, 1); } 우선 overflow가 나올 수 있는 부분을 처리해 주었습니다. 정수형 최솟값인 '-2147483648'을 양수로 바꾸게 된다면 overflow가 됩니다. 이를 방지.. 2023. 12. 6.
특정 진법 정수로 바꾸기 특정 입력받은 문자열을 정수형으로 변환하는 방법을 알아보도록 하겠습니다. 포스팅을 읽기 전에 이전에 포스팅했던 atoi에 대해 아직 보지 못하신 분은 한번 참고해 주시길 바라겠습니다. https://hig0617.tistory.com/100 만약에 문자열에 공백들이 있으면 이를 제거해 주어야 합니다. 부호가 여러개가 있으면 '-'가 홀수이면 음수로 짝수이면 양수로 부호를 정해 주어야 합니다. 저희는 위의 역할을 해주는 함수를 OdOp_sign이라 정하겠습니다. OdOp_sign char* OdOp_sign(int* sign, char* str) { while (*str == 32 || (*str >= 9 && *str = 9 && base[n] = 9 && *str = 9 && base[n] 2023. 12. 5.
반응형