C 언어 시 뮬 레이 션 실현 atoi 함수 의 실례 상세 설명
atoi 함수,주요 기능 은 하나의 문자열 을 정수 로 바 꾸 는 것 입 니 다.예 를 들 어'12345'C>12345.그러나 실현 과정 에서 우 리 는 전면적 인 고려 가 부족 해서 비교적 중요 한 몇 가 지 를 빠 뜨 릴 수 밖 에 없다.오늘 은 atoi 함 수 를 실현 하 는 데 주의해 야 할 부분 을 정리 하 자.
1.NULL 포인터
2.빈 문자열
3.공백 문자
4.플러스 와 마이너스 문제
5.넘 침 문제
6.이상 문자 처리
다음은 코드 를 보 겠 습 니 다.(구체 적 인 몇 가지 문제 처 리 는 코드 의 주석 에서 설명 합 니 다)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <assert.h>
//
enum STATE
{
VALID, //
INVALID,//
};
enum STATE state = INVALID;
int my_atoi(const char *str)
{
int flag = 1;
long long ret = 0;// int , 。
//
assert(str);
//
if (*str == "\0")
{
return 0;
}
//
while (isspace(*str))// isspace
{
str++;
}
//
if (*str == '-')
{
flag = -1;
str++;
}
if (*str == '+')
{
str++;
}
//
while (*str)
{
//if (*str >= '0'&&*str <= '9')
if (isdigit(*str))// isdigit
{
ret = ret * 10 + flag*(*str - '0');
//
if (ret > INT_MAX || ret < INT_MIN)
{
return ret;
}
}
//
else
{
break;
}
str++;
}
state = VALID;
return ret;
}
int main()
{
char *p = "12345";
char *q = " -12345";
int ret = my_atoi(p);
int ret2 = my_atoi(q);
printf("%d
", ret);
printf("%d
", ret2);
system("pause");
return 0;
}
실행 결과:이상 은 C 언어 시 뮬 레이 션 으로 atoi 함 수 를 실현 하 는 실례 입 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 지역사회 에 가서 토론 을 하 십시오.읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.