新手求助:c语言,用返回值为指针的函数,编写一个在某字符串中删除某个字符的函数。
发布网友
发布时间:2022-04-23 00:22
我来回答
共3个回答
热心网友
时间:2023-10-09 06:16
你的子函数的return应该放在循环结束之后。如果放到循环中,那么第一次循环就会执行return跳出子程序。所以没实现。
char
*char_search(char
*str2,char
c)
{
char
*p=str2,*q;
for
(;*p!='\0';p++)
{if
(*p==c)
{q=p;
for
(;*q!='\0';q++)
{*q=*(q+1);}
p--;
}
}
return
str2;
}
热心网友
时间:2023-10-09 06:17
你改变后的字符串未用'\0'结束,所以是不对的。在最后一定要加字符串结束符,否则得不到你想要的。
#include
char *char_search(char *str2,char c)//这样改改,效率更高
热心网友
时间:2023-10-09 06:17
#include<stdio.h>
void deletechar(char c, char *s)
{
char *p=s;
for(int i=0;s[i]!='\0';){
if(s[i]==c){i++;continue;}
*p++=s[i++];
}
*p='\0';
}
int main(void)
{
char c,str[]="ldkfssjklssjfsj";
puts(str);
printf("请输入要删除的字母:");
scanf("%c",c);
deletechar(c,str);
puts(str);
return 0;
}