c++编程:从字符串中删除指定的字符

编写函数fun(),该函数功能是从字符串中删除指定的字符,同一字母的大小写按不同的字符处理。例如:执行时输入的字符串是turbocandborlandc++,从键盘上输入... 编写函数fun( ),该函数功能是从字符串中删除指定的字符,同一字母的大小写按不同的字符处理。 例如:执行时输入的字符串是 turbo c and borland c++,从键盘上输入字符n,则输出为 turbo c ad borlad c++. 如果输入的字符在字符串中不存在,则原样输出。仅在函数fun的花括号中填入所编写的语句.
#include<iostream.h>
using namespace std;
void fun(char s[],int c)
{
}
int main()
{
static char str[]="turbo c and borland c++";
char ch;
cout<<"原始字符串:\n"<<str<<endl;
cout<<"输入一个字符:“;
cin>>ch;
fun(str,ch);
cout<<"str="<<str<<endl;
return 0;
}

我对这些都是一片茫然的,知道的麻烦教我一下~非常感谢!!
展开
 我来答
爱教育爱学习
高粉答主

2019-11-13 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112732

向TA提问 私信TA
展开全部

#include<iostream>

#include<string.h>

usingnamespacestd;

intmain(){

strings="-daas-j--kdj-al-";

string::iteratorit;

for(it=s.begin();it!=s.end();it++)

if(*it=='-'){

s.erase(it);

it--;

}

cout<<s<<endl;

return0;

}

扩展资料

C++从string中删除一个字符

#include<iostream>

#include<string>

#include<stdlib.h>

usingnamespacestd;

intmain()

{

stringstr="abddghj";

string::iteratorit;//指向string类的迭代器。你可以理解为指针

for(it=str.begin();*it!='';it++)

{

if(*it=='d')

{

str.erase(it);//删除it处的一个字符

break;

}

}

cout<<str<<endl;

system("pause");

return0;

}

沧海雄风2009
推荐于2017-12-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2826万
展开全部
原始字符串:
turbo c and borland c++
输入一个字符:c
str=turbo and borland ++
Press any key to continue

这就是你写的定义 ? void fun(char s[],int c) 第二个参数是 int?! 哎 无语 谁知道你还把哪里写错着

#include<iostream>
using namespace std;

void *fun(char * const str,const char ch) //从str字符串删除所有的todel字符,返回处理后的字符串地址
{
int i,j;
for (i = 0; str[i];) {
if (str[i]==ch) {
for (j=i; str[j]; j++) {
str[j]=str[j+1];
}
}
else i++;
}
return str;
}

int main()
{
static char str[]="turbo c and borland c++";
char ch;
cout<<"原始字符串:\n"<<str<<endl;
cout<<"输入一个字符:";
cin>>ch;
fun(str,ch);
cout<<"str="<<str<<endl;
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiufeng1100
2011-06-17 · TA获得超过422个赞
知道小有建树答主
回答量:332
采纳率:20%
帮助的人:141万
展开全部
char *fun( char s[] , const char ch )
{
int len = strlen ( s ) , j = 0 , k = 0/*新字符串的下标*/ ;
for (j = 0 ; j < len ; j++)
{
if (s [ j ] == ch ) continue;
s [ k++ ] = s[ j ];
}
s [ k++] = '\0';

return s;/*设置一个返回值有益于函数的链式表达*/
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z84616995z
2011-06-17 · TA获得超过354个赞
知道小有建树答主
回答量:258
采纳率:45%
帮助的人:118万
展开全部
#include<iostream>
#include<string>
using namespace std;
void fun(char s[],char c)
{
for (int i=0;i<strlen(s);)
{
if (s[i]==c)
{
s[i]=s[i+1];//将目标字符的后一个字符前移 就覆盖了目标字符
}
else
{
++i;
}
}
}
int main()
{
const int n=1000;//为要输入的turbo c and borland c++字符串提供足够大的空间
static char str[n];
gets(str); //char 是C风格的字符串所以用gets函数来输入包括空格在内的字符串
char ch;
cout<<"原始字符串:\n"<<str<<endl;
cout<<"输入一个字符:";
cin>>ch;
fun(str,ch);
cout<<"str="<<str<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
易crazy
2011-06-17 · TA获得超过138个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:72.1万
展开全部
#include<iostream>
using namespace std;
void fun(char s[],char c)
{
int len=sizeof(s);
for(int i=0;i<len;i++)
{
if(s[i]==c)
{
for(int j=i;j<len;j++)
{
s[j]=s[j+1];
}
i--;
}
}

cout<<s<<endl;
}
int main()
{
char str[]="turbo c and borland c++";
char ch;
cout<<"原始字符串:\n"<<str<<endl;
cout<<"输入一个字符: ";
cin>>ch;
fun(str,ch);
cout<<str<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式