문자열 중간자 없이 Char를 Int로 변환
프로그래머는 종종 문자열에서 숫자를 추출하여 활용하는 작업에 직면합니다. 계산. 인덱스로 개별 문자에 액세스하는 것은 간단하지만 이러한 문자를 어떻게 정수로 변환할 수 있습니까?
전통적인 접근 방식에서는 문자열을 인수로 사용하는 atoi() 함수를 사용합니다. 그러나 이를 위해서는 먼저 각 문자를 문자열로 변환해야 합니다. 더 효율적인 방법이 있나요?
문자 인코딩 활용
답은 숫자에 대한 문자 인코딩이 48('의 경우)부터 순차적이라는 사실을 활용하는 데 있습니다. 0') ~ 57('9'의 경우). 이러한 일관성은 ASCII, UTF-x 및 대부분의 기타 인코딩을 포함한 다양한 인코딩에서 유지됩니다.
따라서 숫자 문자에 해당하는 정수는 단순히 문자에서 '0'을 뺀 문자 또는 48입니다.
다음 코드 조각을 고려하세요.
char c = '1'; int i = c - '0'; // i is now equal to 1, not '1'
이 코드는 변수 i에 정수 값 1을 할당합니다. 또는 다음 코드 조각을 사용하면 동일한 결과를 얻을 수 있습니다.
char c = '1'; int i = c - 48; // i is now equal to 1, not '1'
두 방법 모두 원하는 결과를 생성하지만 '0'에서 빼는 것이 더 읽기 쉽고 효율적인 것으로 간주됩니다.
위 내용은 문자열을 사용하지 않고 문자 숫자를 정수로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!