编写一个函数,实现从字符串“str”中删除所有的指定字符“ch”。

从主函数中输入一个字符串“str”和一个字符“ch”,并在主函数中调用该函数,运行后输出删除后的字符串“str”。... 从主函数中输入一个字符串“str”和一个字符“ch”,并在主函数中调用该函数,运行后输出删除后的字符串“str”。 展开
 我来答
彭咿呀
高粉答主

推荐于2019-08-23 · 醉心答题,欢迎关注
知道大有可为答主
回答量:227
采纳率:100%
帮助的人:36.3万
展开全部
void delchar(char*str,char ch)
{
      char *p=str;
      while( *str )
      {
           if ( *str != ch )
              *p++=*str ;
           str++ ;
      }
      *p='\0' ;
}

算法描述:

  1. 定义两字符指针,一个作为读取指针,另一个作为写入指针,写指针指向字符串的头部。

  2. 将写指针向后移定位到第一个要替换字符或结束符,

    如果是结束符, 返回;

    否则,读指针 = 写指针加1。

  3. 如果读指针指向的字符不是要替换字符或结束符, 将读指针内容 赋给写指针; 两指针后移;

    否则  如果 读指针指向的是要替换字符, 读指针后移;

    否则 将读指针内容 赋给写指针, 返回。

  4. 重复3。

月下游骑aM
2018-01-13 · 超过27用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:64.1万
展开全部
#include "stdafx.h"
#include <iostream>
#include "string.h"
using namespace std;
char* Serch(char *str,char ch)
{
int i=strlen(str);
char *str1 = new char [i+1];
int k=0,j=0;
while(str[k])
{
if(str[k]!=ch)
{
str1[j]=str[k];
j++;
}
k++;
}
str1[j]='\0';
return str1;
}
int main()
{
char str[128]={};
cout<<"请输入str字符串"<<endl;
cin>>str;
char ch;
cout<<"请输入ch字符串";
cin>>ch;
cout<<"输出结果为"<<endl;
cout<<Serch(str,ch)<<endl;
return 0;
}

方法比较笨 就是一个字符一个字符比较 相同的舍弃,将不同的存放在一个新数组中 忘采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式