凤尾竹和散尾葵的区别:求助,由键盘输入一个字符串和一个字符,要求从该字符串中删除所指定的字符

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 19:48:13
例如:how are you ,除掉指定的字母o,则变成了hw are yu,用C语言
在线等,拜托了

#include <string.h>

int main()
{
char c;
char s1[],s2[];
//**********这里是一些初始化的地方,比如说前面的语句等等*******************
//**********假设原来的字符串是s1,新字符串是s2,需要删除的字符是c,那么****

int i;
s2={""};
for (i=0;i<strlen(s1);i++)
{
if (s1[i]!=c)
strcat(s2,s1[i]);
}

//**********此时,s2里面就是删除之后的字符串了***********

return 0;
}

说明白一点

main()
{char str[11]="how are you";
int *p;
p=str;
for(;p>=&str[2]&&p<=&str[11];p++)*p=*(p-1);
printf("%s%",str);}

如果错了,对我说,我再看看有什么错误

用链表给你作的 (其实是很早以前作的几个东西剪切一些功能那到这里的一个产物)给你调试过了 有问题可以找我 gabmyd@126.com
#include <stdio.h>
#include <malloc.h>
typedef struct ym
{
char Data;
struct ym * Next;
}Zhizhen;

Zhizhen * Jl();//建立链表
void Xs(Zhizhen * Hend);//显示链表
void Cx(Zhizhen *pHend, char Data, Zhizhen **jgwz);//查询 头指针 要查找的字符 结果位置
int Sc(Zhizhen ** pHend, Zhizhen * p_dizi);//删除

void main()
{
Zhizhen * pHend;
Zhizhen * jgwz;
char sj;
int x;
printf("请输入字符串:\n");
pHend = Jl();
printf("您输入的字符串如下:\n");
Xs(pHend);
printf("请输入要删除的字符:\n");
sj = getchar();
Cx(pHend, sj, &jgwz);
if (NULL == jgwz)
{
printf("没有找到对应的字母!\n");
return;
}
x = Sc(&pHend, jgwz);
if(x == 0)
{
printf("删除错误!\n");
return;
}
printf("删除字符%c后的字符串如下:\n",sj);
Xs(pHend);
}

Zhizhen * Jl()
{
Zhizhen * Hend = NULL;
Zhizhen * p = NULL;
Zhizhen * q = NULL;
char Cdata = 'a';
int Temp = 0;
Cdata = getchar();
if (Cdata == 10 && Temp == 0)
{
return NULL;
Temp++;
}
Hend = (Zhizhen *)malloc(sizeof(Zhizhen));
Hend->Data = Cdata;
Hend->Next = NULL;
q = Hend;
Cdata = getchar();
while(Cdata != 10)
{
p = (Zhizhen *)malloc(sizeof(Zhizhen));
p->Data = Cdata;
p->Next = NULL;
q->Next = p;
q = p;
Cdata = getchar();
}
return Hend;
}

void Xs(Zhizhen * Hend)
{
int Temp = 1;
while(Temp)
{
printf("%c",Hend->Data);
if(NULL == Hend->Next)
{
Temp = 0;
}
else
{
Hend = Hend->Next ;
}
}
printf("\n");
}

int Sc(Zhizhen ** pHend_dizhi, Zhizhen * p_sc)
{
Zhizhen *q;
Zhizhen *pHend = *pHend_dizhi;
if(pHend == p_sc)
{
*pHend_dizhi = (*pHend_dizhi)->Next;
free(pHend);
pHend = NULL;
return 1;//成功
}
q = pHend->Next;
while(q != NULL)
{
if(q == p_sc)
{
pHend->Next = q->Next;
free(q);
q = NULL;
return 1;//成功
}
else
{
pHend = q;
q = pHend->Next;
}

}
return 0;//删除错误
}

void Cx(Zhizhen *pHend, char Data, Zhizhen **jgwz)
{

do
{
if(pHend->Data == Data)
{
(*jgwz) = pHend;
return;
}
pHend = pHend->Next ;
}
while(pHend->Next != NULL);
if(pHend->Data == Data)
{
(*jgwz) = pHend;
return;
}
(*jgwz) = NULL;
}