一个简单的C++字符串替换问题!!!!!

输入一个字符串:1+sin(60)+cos(50)需要将sin替换成单个字符s,cos替换成单个字符c最后输出替换完成的字符串:1+s(60)+c(50)请将代码发上来急... 输入一个字符串:1+sin(60)+cos(50)
需要将sin替换成单个字符s,cos替换成单个字符c
最后输出替换完成的字符串:1+s(60)+c(50)
请将代码发上来急用,可以的话追加30分!
补充一下:字符串是用char数组定义的,sin和cos出现的位置是不定的,不要用固定位置来写代码。
展开
 我来答
百度网友4cb770239
推荐于2016-03-04 · TA获得超过145个赞
知道答主
回答量:61
采纳率:0%
帮助的人:79.7万
展开全部

#include <iostream>

#include <string>

using namespace std;

main()

{

string str1;

cout<<"input"<<endl;//输入数据

cin>>str1;

int loc1 = str1.find( "sin", 0 );//查找 "sin" ,返回位置

    while( loc1 != string::npos )//

 { 

  str1.replace(loc1,3,"s");//将 sin 替换成 s

        loc1 = str1.find( "sin", 0 );

 }

int loc2 = str1.find( "cos", 0 );//查找 "cos" ,返回位置

    while( loc2 != string::npos )

 {

  str1.replace(loc2,3,"c");//将 cos 替换成 c

  loc2 = str1.find( "cos", 0 );

 }

    

cout<<str1<<endl;

}

315856512
2010-12-24 · 超过42用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:105万
展开全部
CStrin 提供了一个替换字符串的函数 Replace
char a[]="1+sin(60)+cos(50)";
CString str1=a;//将数组中的字符串赋值给str1
str1.Replace("sin","s");
str1.Replace("cos","c");
printf("%s",str1);
这种方法,字符串中所有的sin cos都会被替换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孟羽然
推荐于2018-04-04 · TA获得超过2976个赞
知道小有建树答主
回答量:1308
采纳率:70%
帮助的人:580万
展开全部
#include <iostream>
#include <string>
using namespace std;
int main () {
string str1="1+sin(60)+cos(50)";
size_t pos = 0;
pos = str1.find("sin");
str1.replace(pos, 3, "s");
pos = str1.find("cos");
str1.replace(pos, 3, "c");
cout << str1 <<endl;
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gyboyzfm
2010-12-24 · 超过11用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:0
展开全部
CString 可以直接进行加,
if (CString SText == _T("sin"))
{
SText = _T("S");
}
这样就把字符串拆开然后在加上了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xwp0815
2010-12-24 · 超过21用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:56.9万
展开全部
这样可以?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式