C语言,C和指针的第四章的课后题,各位看看
#include<stdio.h>voiddeblank(charstring[]);voidmain(){charch[100];gets(ch);puts(ch);d...
#include <stdio.h>
void deblank(char string[]);
void main()
{
char ch[100];
gets(ch);
puts(ch);
deblank(ch);
}
void deblank(char string[])
{
int i = 0, n;
char ch1;
ch1 = getchar();//输入一个空格
if(string[0] =! '\0')
{
while(string[i] =! '\0')
{
if(string[i] == ch1)//要是string有和空格一样的就往下
{
for(n = i + 1; string[n] =! " "; n++)
{
if(string[n] == ch1)//再叛断有没一样的
{
while(string[n] =! '\0')
{
string[n] = string[n+1];
n++;//有就去掉第二个空格
}
goto le;
}
goto le;//没有就GOTO
}
}
le: ;
i++;
}
}
}//进入循环后string[i]的值就是乱码,各位大牛看看,高分追加 展开
void deblank(char string[]);
void main()
{
char ch[100];
gets(ch);
puts(ch);
deblank(ch);
}
void deblank(char string[])
{
int i = 0, n;
char ch1;
ch1 = getchar();//输入一个空格
if(string[0] =! '\0')
{
while(string[i] =! '\0')
{
if(string[i] == ch1)//要是string有和空格一样的就往下
{
for(n = i + 1; string[n] =! " "; n++)
{
if(string[n] == ch1)//再叛断有没一样的
{
while(string[n] =! '\0')
{
string[n] = string[n+1];
n++;//有就去掉第二个空格
}
goto le;
}
goto le;//没有就GOTO
}
}
le: ;
i++;
}
}
}//进入循环后string[i]的值就是乱码,各位大牛看看,高分追加 展开
展开全部
你这个不等于=!我也是看醉了,第一次看到这样写的,全改成!=吧。
另外给你解释下为什么会乱码if(string[0] =! '\0')条件 string[0]=!'\0'会解释成string[0]=(!'\0'),这个一个赋值语句,值是0求反,对于char变量来说就是0xFF,所以string全变乱码。
另外给你解释下为什么会乱码if(string[0] =! '\0')条件 string[0]=!'\0'会解释成string[0]=(!'\0'),这个一个赋值语句,值是0求反,对于char变量来说就是0xFF,所以string全变乱码。
追问
我已好了,但thanks
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-04-03
展开全部
if(string[0] =! '\0')
=! 是什么
追问
不等于啊
追答
……哪本书教的
不等于是 !=
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你为何还在用goto语句啊。这种语句早都不用了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询