ACM--string 일반적인 사용 방법

9302 단어
ACM 경쟁에서 읽은 숫자의 모든 것을 분리해야 하기 때문에 나머지 방법을 사용하면 시간이 너무 오래 걸린다. 이때 우리는 읽은 데이터를 문자열로 처리하면 편리하고 시간을 절약할 수 있다.다음 프로그램은 여러분의 합을 정수로 구하는 것을 보여 줍니다.
#include <string>
#include 
using namespace std;
int main(){
    string s = "123455";
    int sum = 0;
    for(int i = 0;i){
        switch(s[i]){
            case '0':sum+=0;break;
            case '1':sum+=1;break;
            case '2':sum+=2;break;
            case '3':sum+=3;break;
            case '4':sum+=4;break;
            case '5':sum+=5;break;
            case '6':sum+=6;break;
            case '7':sum+=7;break;
            case '8':sum+=8;break;
            case '9':sum+=9;break;
        }
    }
    cout << sum;
}

sscanf 함수는 매우 유용합니다. 문자열을 원하는 방식으로 하위 문자열, 심지어 숫자까지 분리할 수 있습니다.다음 프로그램은 sscanf 함수의 구체적인 사용법을 보여 줍니다.
#include 
#include <string>
using namespace std;
int main(){
    char a[100],b[100],c[100];
    sscanf("122 3ss 3ww","%s %s %s",a,b,c);
    string s = a;
    cout << s <<endl;
    int p,l,k;
    sscanf("122 $122$333","%d $%d$%d",&p,&l,&k);
    cout << p <<endl;
    cout << l <<endl;
    
}

때로string 대상과 수치 사이를 서로 바꾸어야 할 때가 있다. 다음 예는 이 작업을 어떻게 완성하는지 상세하게 설명한다.
#include  
#include <string> 
#include  
using namespace std; 
//C++  :      string 
string convertToString(double x) 
{ 
ostringstream o; 
if (o << x) 
 return o.str(); 
return "conversion error";//if error 
} 
//C++  : string     
double convertFromString(const string &s) 
{ 
istringstream i(s); 
double x; 
if (i >> x) 
return x; 
return 0.0;//if error 
} 
int main(int argc, char* argv[]) 
{ 
//      string      :C  
char b[10]; 
string a; 
sprintf(b,"%d",1975); 
a=b; 
cout<endl; 
// 수치를string으로 변환하는 두 번째 방법: C++ 방법
string cc=convertToString(1976); 
cout<endl; 
//string을 수치로 변환하는 방법: C++ 방법
string dd="2006"; 
int p=convertFromString(dd)+2; 
cout<endl; 
return 0; 
}

좋은 웹페이지 즐겨찾기