[2024.02.05] String

체리마루·2024년 2월 5일

문자열

  • 문자 -> 숫자
def atoi(s):
    i = 0
    for x in s:
        i = i * 10 + ord(x) - ord('0')
    return i

s = '123'
print(atoi(s))
  • 숫자 -> 문자
def itoa(a):
    s = ''
    while a > 0:
        s = chr(a % 10 + ord('0')) + s
        a //= 10
    return s

a = 123
print(itoa(a))
def itoa(i):
    '''
    parpam i : 변환할 정수값
    return str: 해당되는 문자열
    '''
    # 빈 문자열의 변수
    result = []
    
    # 몫이 0이 될 때까지 반복!
    while i != 0:
        digit = i % 10  # 첫째자리 수, 4
        i = i // 10 # 첫째자리 수를 뺀 나머지 자릿수, 123
        
        '''
        - digit를 해당되는 문자로 변환
        - 아스키코드를 변환하는 두 가지 함수 => chr(), ord()
            1. chr() : 아스키코드 값 -> 문자
            2. ord() : 문자 -> 아스키코드 값
    
        '0'에 해당되는 아스키코드값? => ord('0') => 48
        정수형 문자 0~9 -> 아스키코드 값 '0'~'9'
        ord('0') + digit
        '''
        
        s_digit = chr(ord('0') + digit)
        result.append(s_digit)
        
        
        # result ?? ['4', '3', '2', '1']
        # 문자열을 역순으로 반환
    return ''.join(result[::-1])
    
i = 1234
string = itoa(i)
print(string)
profile
멋쟁이 토마토 개발자 🍅

0개의 댓글