C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[41410] [자문자답] atoi 를 쓰면 되더군요.
kalamazu [] 2815 읽음    2005-08-10 18:01
C++ 에서 쓰는 string은 C에서 쓰는 string 과 구조 자체가 다릅니다.
그래서 C에서 쓰는 strToInt은 예상대로 에러가 나오더군요.
string 클래스의 method에 atoi가 있더군요.
문제없이 잘 되는것 같습니다.
C에서 쓰는 StrToInt 를 사용하려면
#include <shlwapi.h>
를 포함해주어야 하더군요.

도움주신 아담님 감사 드립니다.



kalamazu 님이 쓰신 글 :
: 아담님의 심플한 답변에 감사드립니다.
:
: 맨마지막에
: int a;
:  a = StrToInt(results[1].c_str());
: 두줄을 추가해서 컴파일 했더니 다음과 같이 에러가 나오는군요.
: "string_split_eg.cpp": E2268 Call to undefined function 'StrToInt' in function main() at line 36
:
: StrToInt 가 undefined 됐다고 에러가 나는데 저는 StrToInt 가 <string>에 정의되어 있을거라고 짐작하고
: 그냥 컴파일 했는데 거기에 없나보네요.
: StrToInt를 사용하려면  어떤 헤더파일을 #include 해야 하는지 다시한번 도움을 부탁드려요 ㅎㅎㅎ.
: 제가 워낙 초보라서요.
:
:
:
: 아담 님이 쓰신 글 :
: : int a;
: : a = StrToInt(results[i].c_str());
: :
: : 이런식으로 하면 됩니다.
: : Have a good day!
: :
: : kalamazu 님이 쓰신 글 :
: : : 안녕하세요.
: : : 요즘 C++에 한참 열을 올리고 있는 초짜입니다.
: : : 인터넷에서 split() 알고리듬을 발견해서 이상없이 잘 사용하고 있습니다.
: : : 그런데 split된 substring들을 Inter값으로 변환해서 사용하여야 하는데 어떻게 해야 하는지 몰라서요.
: : : 일단 main()에 있는 코드를 올려보겠습니다
: : :
: : : =============================================================
: : : #include <string>
: : : #include<iostream>
: : : #include <vector>
: : : #include "StringUtils.h"
: : : #include "StringUtils.cpp"
: : :
: : : void main()
: : : {
: : :   // see Alice's Adventures in Wonderland by LC chapter
: : :   // VII for full context of quote
: : :   string in("1:2:3:4:5:6:7");
: : :   string delim(":");
: : :
: : :   vector<string> results;
: : :
: : :   int num = StringUtils::SplitString(in, delim, results);
: : :   cout << "input="<<in.c_str()<<endl;
: : :   cout << "Number of "<<delim.c_str()<<" found:"<<num<<endl;
: : :
: : :   for( int i=0; i < results.size(); i++ )
: : :   {
: : :     cout<<"substring '"<<i+1<<"'="<<results[i].c_str()<<endl;
: : :   }
: : :
: : : }
: : : ======================================================================
: : :
: : : 위는 string in 인스턴스에 있는 "1:2:3:4:5:6:7"을 SplitString함수를 사용하여 
: : : resuts string vetor로 split된 substring들을 반환하는데,
: : : 제가 하고 싶은 일은 이 반환된 substring들을 inter값으로 변환하고 싶은데
: : : 어떻게 해야될지 몰라서요.
: : :
: : : 단독직입적으로 얘기하면 맨 아래 for loop 에 있는 results[i].c_str()들을 정수값으로 변환하여
: : : 사용해야 하는데 잘 안되네요.
: : : 실지로 컴파일러에 돌려보면 출력은 다음과 같습니다:
: : : ===OUTPUT=========
: : : input=1:2:3:4:5:6:7
: : : Number of : found:6
: : : substring '1'=1
: : : substring '2'=2
: : : substring '3'=3
: : : substring '4'=4
: : : substring '5'=5
: : : substring '6'=6
: : : substring '7'=7
: : : =====================
: : :
: : : 여기서 제가 하고 싶은것은 예를들면 results[0].c_str()은 값 1을 갖는데 이 1을 실지로 integer값으로 변환해서
: : : 사용할 수 있는 방법이 없을까 해서요.
: : : 고수님들 조언을 부탁드립니다.
: : :
: : :
: : : *StringUtils.h 와 StringUtils.cpp파일을 첨부합니다

+ -

관련 글 리스트
41403 [질문/c++]string을 int 형으로 변환하는 방법 없을까요? kalamazu 5550 2005/08/10
41404     Re:[질문/c++]string을 int 형으로 변환하는 방법 없을까요? 아담 4331 2005/08/10
41405         Re:StrToInt 를 찾을수 없다고 하는데 어떻게 해야할지.. kalamazu 1534 2005/08/10
41410             [자문자답] atoi 를 쓰면 되더군요. kalamazu 2815 2005/08/10
41409             Re:Re:StrToInt 를 찾을수 없다고 하는데 어떻게 해야할지.. 아담 1730 2005/08/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.