有一个字符串,内有若干字符,要求输入一个字符,程序便将字符串中该字符删去
求大佬们看看错在哪 运行不了#include<stdio.h>
void main()
{
char c;
char str;
void est(char str[]);
void dst(char str[],char c);
void pr(char str[]);
est(str);
scanf("%c",&c);
dst(str,c);
pr(str);
}
void est(char str[])
{
gets(str);
}
void dst(char str[],char c)
{
int i,j;
for(i=j=0;str!='\0';i++)
{
if(str!=c)
str=str;
}
str='\0';
}
void pr(char str)
{
printf("%s\n",str);
}
最后一个函数写错了
void pr(char str)
应该写成
void pr(char str[])
你漏掉了中括号 顺求大佬告知
str='\0';
是什么意思 sunrise085 发表于 2020-7-12 16:39
最后一个函数写错了
应该写成
大佬能解释下
str='\0';
是什么意思吗?
本帖最后由 sunrise085 于 2020-7-12 16:58 编辑
有梦想大蜗牛 发表于 2020-7-12 16:48
大佬能解释下
str='\0';
是什么意思吗?
'\0'是字符串结束字符。
直接输入字符串的话,程序会在末尾添加结束字符,但是你这是修改字符串了就需要手动添加该字符,当你用%s进行printf 的时候,遇到'\0',程序就认为该字符串结束了,实际上之后还有内容只是不再打印了。
举个例子:
原字符串:abcdaaaabcd,在内存中实际存放的是abcdaaaabcd\0
删除字符a之后,实际存放的是bcdbcd\0abcd\0
当用%s打印的时候,遇到'\0',程序就认为该字符串已经结束了。后面的就不再打印了 如果是c语言,可以改成:void pr(char *str){}。 sunrise085 发表于 2020-7-12 16:57
'\0'是字符串结束字符。
直接输入字符串的话,程序会在末尾添加结束字符,但是你这是修改字符串了就需 ...
谢谢大佬懂了 https://s1.ax1x.com/2020/07/05/UpAthV.gif
页:
[1]