ACM--string常见用法

简介:
在ACM竞赛中,常常需要将读入的数字的每位分离出来,如果采用取余的方法,花
费的时间就会太长,这时候,我们可以将读入的数据当成字符串来处理,这样就方便、省
时多了。下面这个程序演示了求一个整数各位的和:
#include <string>
#include <iostream>
using namespace std;
int main(){
    string s = "123455";
    int sum = 0;
    for(int i = 0;i<s.length();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 <iostream>
#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 <iostream> 
#include <string> 
#include <sstream> 
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<<a<<endl; 
//将数值转换为string的第二种方法:C++方法
string cc=convertToString(1976); 
cout<<cc<<endl; 
//将string转换为数值的方法:C++方法
string dd="2006"; 
int p=convertFromString(dd)+2; 
cout<<p<<endl; 
return 0; 
}


相关文章
|
8月前
|
编译器 容器
C++string类的介绍及常用函数用法总结
C++string类的介绍及常用函数用法总结
95 1
String.format()函数的简单用法
1.String.format()函数的用法 2.常用转换符 3.常用标识
138 0
|
算法 Java 数据库
抽象类和接口 && String的理解 && StringBuilder和StringBuffer && 异常的基本用法 && 时间复杂度
抽象类和接口 && String的理解 && StringBuilder和StringBuffer && 异常的基本用法 && 时间复杂度
76 0
|
5月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
5月前
|
Unix Linux
文本匹配.grep与Select-String用法对比
文本匹配.grep与Select-String用法对比
86 6
|
6月前
|
C++
C++ string中的函数和常用用法
C++ 中string中的函数和常用用法
66 4
|
7月前
|
Java
Java中String的用法
Java中String的用法
60 1
|
7月前
|
存储 C语言 C++
#include <string>的用法
#include <string>的用法
143 0
|
Java
【Java用法】Java中String类型和int类型互转的所有方法
【Java用法】Java中String类型和int类型互转的所有方法
166 0
|
8月前
|
存储 算法 安全
【数据结构与算法初学者指南】【冲击蓝桥篇】String与StringBuilder的区别和用法
【数据结构与算法初学者指南】【冲击蓝桥篇】String与StringBuilder的区别和用法