2012-03-29 6 views
-1

내 질문을 변경하고 싶습니다.C++ substr 및 find_first_of

내게 무슨 일이 일어나는지 알려주세요.

type is "CHAR(10)" 

size = type.substr(type.find_first_of("("), type.find_first_of(")")); 
cout << "SIZE : " << size << endl; 
cout << "SIZE : " << size.substr(1, (size.length())-1) << endl; 

SIZE : (10) 
SIZE : 10) 

나는 단지 그렇게해야한다. 나는 그것을 할 수 없다. 표준 : : 문자열의

+1

당신은 무엇을 의미합니까 잘 작동하지 않음으로써 .. 우리에게 당신의 코드와 당신이 직면 한 문제를 보여주십시오. – Naveen

+0

원하는 결과는 무엇입니까? –

+0

잘 작동하지 않습니까? 그것은 잘 작동하지만 괜찮지는 않습니까? – Anycorn

답변

1

기능 SUBSTR는

string type = "CHAR(10)"; 

int k1,k2; 
size = type.substr(k1=type.find_first_of("("), k2=type.find_first_of(")")); 
cout<<"index="<< k1<<" len=" << k2 << endl; 
cout << "SIZE : " << size << endl; 
cout << "SIZE : " << size.substr(1, (size.length())-1) << endl; 

index1=4 len=7 
SIZE : (10) 
SIZE : 10) 

이 그 크기를 찾을 간단으로부터 유형의 문자열입니다 필요 첫 번째 인수는 태초의 인덱스 2 번째의 인수가 문자열의 길이가 두 개의 인수가 10 인덱스 4 종류의 크기가 8이기 때문에,

솔루션 당신의 문자열의 마지막 문자까지 코드 인쇄는 다음과 같습니다

k1= type.find_first_of("("); 
k2=type.find_first_of(")"); 
k2-=k1;//now it's the length of size 
size = type.substr(k1,k2); 
+0

감사합니다, 이 스타일을 만들었습니다 int i, j = 0; \t \t \t \t type.find_first_of I = ("(") + 1] \t \t \t \t J = type.find_first_of (")") - I; – Karl