请大虾找找bug

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:40:39
#include<stdio.h>
#include<string.h>
void delchar(char s[],char c);
void main()
{
char s[100],ch;
puts("enter ch");
ch=getchar();

printf("enter a string\n");
gets(s);
delchar(s,ch);
puts(s);
}
void delchar(char s[],char c)
{
char t[100];
int i,k;
k=0;
for(i=0;s[i]!='\0';i++)
{
if(s[i]!=c)
{
t[k]=s[i];
k++;
}
}
t[k]='\0';
strcpy(s,t);
}这个程序是定义并调用delchar(s,r)删除字符串中的所有r.但是不知道为什么我的程序运行不对啊。

你这个s是要求改变是吧,你这样传参是不行的..

或者你用&(引用),或者用指针做参数 才能改变参数的值

例如:你的函数可以这样定义delchar(char *s,char c)
调用时用:delchar(&s,ch);