返回值是字符类型指针
#include <stdio.h>#include <stdlib.h>
#include <string.h>
char* delete (char*str,char c);
int main()
{
char str={0};
gets(str);
char ch;
scanf("%c",&ch);
printf("%p",delete(str,ch));
printf("%s",delete(str,ch));
return 0;
}
char* delete (char*str,char c)
{
char ch={0};
int i=0,k=0;
while(str) //完成对str中c字符的删除
{
if(str!=c)
{
ch=str;
k++;
}
i++;
}
return ch; //返回操作后的字符串地址
}
请问为什么我这样写,最后在主函数里面调用显示NULL呢,也无法打印字符串 哦,懂了。我定义的ch数组只是在delete函数中,应该在主函数里面定义ch数组{:10_257:} static #include <stdio.h>
char* delete(char* str, char c){
static char res; // 改成静态
int i = 0, j = 0;
while(str){
if(str != c)
res = str;
i++;
}
return res;
}
int main(){
printf("%s", delete("banana", 'a'));
return 0;
}
页:
[1]