编写一个函数,删除字符串中指定位置上的字符,删 除成功返回被删除的字符,否则返回空值。

C编程编写一个函数,删除字符串中指定位置上的字符,删除成功返回被删除的字符,否则返回空值。... C编程编写一个函数,删除字符串中指定位置上的字符,删
除成功返回被删除的字符,否则返回空值。
展开
 我来答
风z使者
2012-01-08 · TA获得超过1260个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:176万
展开全部
char fun(char *p,int a) //形参为要操作的字符串,和要删去的字符的排位
{
if(*p+a)
p=p+a;
else
for(p=p+a;*p;p++)
*p=*p+1;
return *p;
}
随便asdq
推荐于2018-04-14 · 超过18用户采纳过TA的回答
知道答主
回答量:33
采纳率:100%
帮助的人:19.1万
展开全部
写了一个,不过因为我只是初学,所以写的不好,不过运行了,可以

#include <stdio.h>

char *delete(char *p, int i);
char a;

int main()
{
char a[40], *b;
int i;

printf("请输入字符串\n");
scanf("%s", a);
printf("请输入你要删除第几个字符\n");
scanf("%d", &i);
b = delete( a, i);

if(b == NULL)
{
printf(" 删除失败\n");
}
else
{
printf("删除的字符是 %c \n", *b);
}

printf("%s\n", a);//输出删除后的字符串
return 0;
}

char *delete(char *p, int i)
{
int lengh = 0, j = 0;
char * b = p;

while(*p != '\0')//求出字符串的长度,lengh中存放字符串的长度用于比较
{
p++;
lengh++;
}
p = b;//因为p移动到最后的位置,将其重新定位到开始位置
if(i > lengh || i < 1)//判断i是否大于零并小于字符串的长度,如果不合理就返回
{
return NULL;
}
a = *( p + i -1);//用全局变量保存要删除的字符
for(j = i - 1; j < lengh; ++j)//调整字符串,让后面的字母依次替换前面的,包括'\0';
{
*(p + j) = *(p + j + 1);
}

return &a;// 返回a的地址
}
更多追问追答
追问
程序错误  = =、  运行不了
追答
没有啊,我才用了VS2010试了,可以的啊,你把错误复制下我看一下我能不能改
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式