C+문자열 string 과 정수 int 의 상호 전환 작업

1.string 에서 int 로 전환 하 는 방식
1.가장 원시 적 인 string 을 사용 한 다음 에 10 진법 의 특징 에 따라 산술 연산 을 하여 int 를 얻 을 수 있 지만 이런 방식 은 너무 번 거 로 우 므 로 여기 서 소개 하지 않 습 니 다.
2.표준 라 이브 러 리 의 atoi 함 수 를 사용 합 니 다.
string s = "12";
int a = atoi(s.c_str());
다른 유형 에 도 해당 하 는 표준 라 이브 러 리 함수 가 있 는데 예 를 들 어 부동 소수점 형 atof(),long 형 atol()등 이 있다.
3.sstream 헤더 파일 에서 정 의 된 문자 직렬 대상 을 사용 하여 변환 을 실현 합 니 다.

istringstream is("12"); //        ,        “12”    
int i;
is >> i; // is      int    i 
2.int string 방식
1.표준 라 이브 러 리 의 to 사용string 함수.
int i = 12;
cout << std::to_string(i) << endl;
헤더 파일 을 포함 할 필요 가 없습니다.유 틸 리 티 에 있어 야 하지만 포함 할 필요 가 없습니다.직접 사용 하고 다른 내 장 된 형식 을 string 으로 바 꾸 는 리 셋 함수 도 정의 하 는 것 이 편리 합 니 다.
2.sstream 에서 정 의 된 문자 직렬 대상 으로 이 루어 집 니 다.

ostringstream os; //          ,     
int i = 12;
os << i; //          int  i   
cout << os.str() << endl; //       str         
문자 직렬 대상 의 str 함 수 는 istringstream 과 ostringstream 에 모두 적용 되 며,흐 르 는 내용 을 가 져 올 수 있 습 니 다.
보충 지식:C++정수,부동 소수점 을 문자열 로 변환
선언:
sprintf 로 정수,부동 소수점 을 문자열 로 바 꿀 수 있 습 니 다.
1.정수

int main(int argc, const char * argv[]) {
  int n = 12345;//    
  char strN[50];//       
  sprintf(strN, "%d", n);
  cout<<strN<<endl;//  
  return 0;
}
결과:

2.부동 소수점

int main(int argc, const char * argv[]) {
  float n = 12345.67;//    
  char strN[50];//       
  sprintf(strN, "%.2f", n);
  cout<<strN<<endl;
  return 0;
}
결과:

이상 의 C++문자열 string 과 정수 int 의 상호 전환 작업 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기