在主函数输入一个字符串,在输入一个字符,编写函数delete(),将字符串中的该字符删除

#include<stdio.h>#include<string.h>voiddelete(chars[],charch){inti;for(i=1;s[i]!='\0'... #include <stdio.h>
#include <string.h>
void delete(char s[],char ch)
{
int i;
for(i=1;s[i]!='\0';i++)
if(s[i]==ch)
strcpy(s+i,s+i+1);
else
i++;
}
void main()
{
char s[81],ch;
gets(s);
ch=getchar();
delete (s,ch);
puts(s);
}

这个程序我调试了一下不能出来
还有我想问一下 strcpy(s+i,s+i+1);这个
交换位置是怎么交换的 比如这里的i=3 难道就是s【3】和s【4】交换么
麻烦编写程序
展开
 我来答
监控_叵幺
2014-05-24 · TA获得超过210个赞
知道答主
回答量:181
采纳率:0%
帮助的人:164万
展开全部
delete()和库里面的函数名冲突,我改成deletechar()了
#include <stdio.h>
#define LENGTH 20

//这里是删除了字符串中的所有与a相同的字符
//nSize是字符串的长度
int deletechar(char **ppStr, char a, int nSize)
{
char *pStr =*ppStr;
int i,j;
int nPos = -1;
for (i=0;i<nSize;i++)
{
if (a == pStr[i])
{
nPos = i;
}
if (nPos!=-1)
{
for (j=nPos;j<nSize-1;j++)
{
pStr[j] = pStr[j+1];
}
nSize--;
nPos = -1;
}
}
return 0;
}

int main()
{
char str[LENGTH];
char ch;
char *p = str;
printf("Please input a string:\n");
scanf("%s", &str);
printf(("Please input a char:\n");
scanf("%c", &ch);
printf("删除前的字符串为:%s", str);
deletechar(&p, ch, sizeof(str));
printf("删除后的字符串为:%s", str);
getchar();
return 0;
}
希望对你能有所帮助。
追问
呵呵 你复制就算了吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式