/*将字符串中所有的空格符号转换为',',并在字符串的结尾加上','*/
//方法一
#include<iostream>
#include<string>
using namespace std;
string ReplaceOneChar(string str,string from,string to)
{
string strResult("");
int posFind=0;//从posFind开始查找from
int posChange;//从posChange开始将from替换为to
while((posChange = str.find(from,posFind)) != string::npos)//从str的开始查找出现from的位置,如果找不到则返回string::npos
{
str.replace(posChange,from.size(),to);//找到之后用to替换from
posFind=posChange+to.size();
}
strResult = str+',';//按题目要求在字符串末尾加上','
return strResult;
}
int main()
{
string str="i love china";
cout<<ReplaceOneChar(str," ",",")<<endl;
return 0;
}
//方法二
#include<algorithm>//直接利用STL中已有的函数
#include<cassert>
#include<string>
#include<iostream>
using namespace std;
int main()
{
string str("i love chaina");
replace(str.begin(),str.end(),' ',',');//replace算法将字符串中出现的某个字符全部用另一个字符替代
str = str+',';
cout<<str<<endl;
return 0;
}
/*
对字符串进行运算,字符串中运算符只有'+'、'-'号,且都是双目运算;例如输入:“123+4-3”,输出124
*/
#include<iostream>
#include<string>
using namespace std;
void Calculate(const char*p,int &result)
{
string str(p);
int firstCal = 0;
int length = str.length();//字符串长度
result=atoi(str.c_str());
while(isdigit(str[firstCal])) //得到都一个'+'或'-'的位置
firstCal++;
for(int i=firstCal;i<length;i++)
{//str变化了
if(str[i]=='+')
{
result+=atoi(str.substr(i+1,length).c_str());//利用atoi函数得到下一个数,result加
}
else if(str[i]=='-')
{
result-=atoi(str.substr(i+1,length).c_str());//利用atoi函数得到下一个数,result减
}
}
cout<<result<<endl;
}
int main()
{
char *str="123+4-55+6-9+11-69";
int result=0;
Calculate(str,result);
return 0;
}
以上代码VC6.0环境下编译通过。