C에서 문자열을 정수로 변환
이 기사에서는 문자열을 정수로 변환하는 C 프로그래밍 언어의 다양한 방법을 소개합니다. C에서atoi(),strtoumax(),strol()과 같이 문자열을 정수로 변환하는 몇 가지 방법이 있습니다.
C에서 문자열을 정수로 변환하는atoi()함수
atoi()함수는 C 프로그래밍 언어에서 문자열을 정수로 변환합니다. atoi()함수는 문자열 시작 부분의 모든 공백을 무시하고 공백 뒤의 문자를 변환 한 다음 숫자가 아닌 첫 번째 문자에 도달하면 중지합니다.
atoi()함수는 문자열의 정수 표현을 반환합니다.
atoi()함수를 사용하려면<stdlib.h>헤더를 포함해야합니다.
atoi()구문
int atoi(const char *str); *str은 정수로 변환 할 문자열에 대한 포인터입니다.
atoi()예제 코드
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { int value; char str[20]; strcpy(str, "123"); value = atoi(str); printf("String value = %s, Int value = %d\n", str, value); return (0); } 출력:
String value=123, Int value=123 C에서 문자열을 정수로 변환하는strtol()함수
strtol()함수는 C 프로그래밍 언어에서 문자열을 긴 정수로 변환합니다. strtol()함수는 후속 문자를 숫자의 일부로 변환 한 후 문자열 시작 부분의 모든 공백 문자를 생략하고 숫자가 아닌 첫 번째 문자를 찾으면 중지합니다.
strtol()함수는 문자열의 긴 정수 값 표현을 반환합니다.
atoi()함수를 사용하려면<stdlib.h>헤더를 포함해야합니다.
strtol()구문
long int strtol(const char *string, char **laststr, int basenumber); *string은 긴 정수로 변환 할 문자열에 대한 포인터입니다.**laststr은 변환이 중지되는 위치를 나타내는 포인터입니다.basenumber는 범위가[2, 36]인 밑입니다.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char str[10]; char *ptr; long value; strcpy(str, " 123"); value = strtol(str, &ptr, 10); printf("decimal %ld\n", value); return 0; } 출력:
decimal 123 C에서 문자열을 정수로 변환하는strtoumax()함수
strtoumax()함수는 문자열의 내용을 지정된 밑수의 정수 형식으로 해석합니다. 공백이 아닌 첫 번째 문자까지 공백 문자를 생략합니다. 그런 다음 유효한 기본 정수 표현을 형성하기 위해 가능한 한 많은 문자를 취하고이를 정수 값으로 변환합니다.
strtoumax 假는 문자열의 해당 정수값을 반환합니다. 변환이 성공적으로 완료되지 않으면 이 함수는 0을 반환합니다.
strtoumax()구문
uintmax_t strtoumax(const char* string, char** last, int basenumber); *string은 긴 정수로 변환 할 문자열에 대한 포인터입니다.**last는 변환이 중지되는 위치를 나타내는 포인터입니다.basenumber는 범위가[2, 36]인 밑입니다.
strtoumax()예제
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char str[10]; char *ptr; int value; strcpy(str, " 123"); printf("The integer value:%d", strtoumax(str, &ptr, 10)); return 0; } 출력:
The long integer value: 123 Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook