编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符

编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str。运行程序并写出2组以上程序运行结果。

第1个回答  2013-12-20
#include<stdio.h>
#include<string.h>void fun(char str[],char ch)
{
char *p;
int length = strlen(str);
int i = length;
int j;
p = str+length-1;
while(p >= str)
{
i--;
if(*p == ch)
{
if(i == length-1)
str[i] = '\0';
else
for(j = i;j < length-1;j++)
str[j] = str[j+1];
length--;
}
p--;
}
str[length] = '\0';
}int main()
{
char str[100];
char ch;
printf("输入字符串:\n");
scanf("%s",str);
getchar();
printf("输入要删除的字符:");
scanf("%c",&ch);
fun(str,ch);
printf("删除字符%c后的字符串:\n%s\n",ch,str);
return 0;
}我都晕死,把C++程序放在C环境运行肯定出错啦本回答被网友采纳
第2个回答  2013-12-20
#include <iostream.h>
#include <string.h>
char*DelCH(const char*str,char ch)
{
const char*p=str;
char*result=new char[strlen(str)+1];//动态创建字符串数组result来接收字符
// for (int i=0;i<(strlen(str)+1);i++)
// {
// result[i]='\0';
// }
memset(result,(int)'\0',strlen(str)+1);//初始化
int len=0;
while(*p)//将不等于字符ch的字符存入result
{
if (*p!=ch)
{
result[len++]=*p;
}
p++;
}
return result;
}
void main()
{
char*str="abcdeabcaaddddad";
char ch='a';
char*result;
result=DelCH(str,ch);
cout<<result<<endl;
}
第3个回答  2013-12-20
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char s[80],c;
void delchar(char *s,char c); printf("Input a string:");
gets(s);
printf("Input a char:");
scanf("%c",&c);
delchar(s,c);
printf("After deleted,the string is:");
for(i=0;i<strlen(s);i++)
printf("%c",s[i]);
fflush(stdin);
getchar();
return 0;
}
void delchar(char *s,char c)
{
int i=0,newstr[80],j=0;
while(s[i]!='\n')
{
if(s[i]!=c)
{
newstr[j++]=s[i];
i++;
}
else
{
i++;
}
}
for(i=0;i<strlen(s);i++)
s[i]=newstr[i];
}
第4个回答  2013-12-20
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main(void)
{
char ch;
char str[256] = {NULL};
scanf("%c%s", &ch, str);
char *p = str;
int i, j = 0, l = strlen(str);
for (i = 0; i != l; ++i, ++p)
{
if (*p != ch)
{
str[j++] = *p;
}
}
str[j] = NULL;
fflush(stdin);
printf("%s\n", str);
system("PAUSE>NUL");
return 0;
}
相似回答