要求定义和调用函数delchar(s,c),该函数的功能是将字符串s中出现的所有c字符删除。【在线等,急求!】
发布网友
发布时间:2022-04-29 14:53
我来回答
共3个回答
热心网友
时间:2023-10-13 01:25
#include <stdio.h>
#include <string.h>
void delchar(char *s,char c);
int main()
{
char s[100],c,*p=s;
printf("输入一个字符串(小于100个字符):");
scanf("%s",s);
getchar();
printf("输入要删除的字符:");
scanf("%c",&c);
delchar(p,c);
printf("%s",s);
return 0;
}
void delchar(char *s,char c)
{
int i,j=0,len=strlen(s);
char sSave[len];
for(i=0;i<len;i++)
{
if(s[i]!=c)
{
sSave[j++]=s[i];
}
}
sSave[j]=0;
memset(s,0,len);
for(i=0;i<len;i++)
s[i]=sSave[i];
}
热心网友
时间:2023-10-13 01:25
#include<stdio.h>
#define N 80
int main(void)
{
char c;
char str[N];
void delchar(char *str, char c);
gets(str);//
scanf("%c", &c);
getchar();
delchar(str, c); //
puts(str);
return 0;
}
void delchar(char *str, char c)
{
int i, j;
i = j = 0;
while(str[i] != '\0'){
if(str[i] != c){//
str[j] = str[i];
j++;
}
i++;
}
str[j] = '\0'; //
}
看带//的行。 是修改过的。
热心网友
时间:2023-10-13 01:26
gets(str[N]);
这里出错
gets(str);
现在都没怎么见过这种写法了,反正我这边编译通不过提示
test.C:(.text+0x79): warning: the `gets' function is dangerous and should not be used.
子函数写的莫名其妙,能达到目的才怪。现在实现的效果是,如果str里有n个c代表的字符,那么会把str设置为n个c代表的字符,str(n)='0',而且可能越界,当str全是c代表的字符时。没有找到的话,就直接把原来字符串第一个字符置'0‘。
编译倒没有编译问题。