|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* delete (char*str,char c);
int main()
{
char str[51]={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[51]={0};
int i=0,k=0;
while(str[i]) //完成对str中c字符的删除
{
if(str[i]!=c)
{
ch[k]=str[i];
k++;
}
i++;
}
return ch; //返回操作后的字符串地址
}
请问为什么我这样写,最后在主函数里面调用显示NULL呢,也无法打印字符串
- #include <stdio.h>
- char* delete(char* str, char c){
- static char res[256]; // 改成静态
- int i = 0, j = 0;
- while(str[i]){
- if(str[i] != c)
- res[j++] = str[i];
- i++;
- }
- return res;
- }
- int main(){
- printf("%s", delete("banana", 'a'));
- return 0;
- }
复制代码
|
|