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