编写一个函数,实现从字符串“str”中删除所有的指定字符“ch”。
从主函数中输入一个字符串“str”和一个字符“ch”,并在主函数中调用该函数,运行后输出删除后的字符串“str”。...
从主函数中输入一个字符串“str”和一个字符“ch”,并在主函数中调用该函数,运行后输出删除后的字符串“str”。
展开
2个回答
展开全部
void delchar(char*str,char ch)
{
char *p=str;
while( *str )
{
if ( *str != ch )
*p++=*str ;
str++ ;
}
*p='\0' ;
}
算法描述:
定义两字符指针,一个作为读取指针,另一个作为写入指针,写指针指向字符串的头部。
将写指针向后移定位到第一个要替换字符或结束符,
如果是结束符, 返回;
否则,读指针 = 写指针加1。
如果读指针指向的字符不是要替换字符或结束符, 将读指针内容 赋给写指针; 两指针后移;
否则 如果 读指针指向的是要替换字符, 读指针后移;
否则 将读指针内容 赋给写指针, 返回。
重复3。
展开全部
#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;
}
方法比较笨 就是一个字符一个字符比较 相同的舍弃,将不同的存放在一个新数组中 忘采纳
#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;
}
方法比较笨 就是一个字符一个字符比较 相同的舍弃,将不同的存放在一个新数组中 忘采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询