求高手解释下这个小程序第二个if语句以后的那几行,它是如何实现将多个空格替换为一个空格的呀!!谢谢了

求高手解释下这个小程序第二个if语句以后的那几行,它是如何实现将多个空格替换为一个空格的呀!!谢谢了,第1张

楼主你好。第二个if语句作用是,如果c是空格的话,在这个前提下,如果lastc不是空格则输出c,对于lastc的初始值为a那么第一次执行时if条件满足,所以输出了一个c也就是空格,然后把空格赋值给lastc。 接下来进入while的第二次循环,假设这次读的还是空格,那么又到了第二个if语句, 这时候判断lastc是不是空格了,有了上一次的赋值,此时if(lastc!=' ')中的条件不满足,则不执行putchar(c),lastc仍然为空格,接下来重复。解释的应该清楚吧?

#include

main()

{ char s[]="012xy\08s34f4w2"; //这里是字符数组,里面存放的是字符

int i,n=0;

for(i=0;s[i]!=0;i++) //这里的 s[i] 是一个字符;将其ASCII码值 与0比较

if(s[i]>='0'&&s[i]<='9') n++;

printf("%d\n",n);

}

char s[]="012xy\08s34f4w2"; //存放到数组里的内容为

s[0] = '0' ,其ASICC码值为48 不等于0

s[1] = '1' ,其ASICC码值为49 不等于0

s[2] = '2' ,其ASICC码值为50 不等于0

s[3] = 'x' ,其ASICC码值为120 不等于0

s[4] = 'y' ,其ASICC码值为121 不等于0

s[5] = '\0' ,该字符为字符串结束符,其ASCII码值为0 因此循环一直要进行到这里才会退出for循环

程序功能是计算字符数组中 在出现结束符之前的字符中有多少个数字字符

因此答案为三个 (0、1、2), 输出的n的值为3

请注意 数字字符 与数字的差别即:

'0' - 0 = 48 // 数字字符与对应数字的 差值为整数十进制48 可参考ASCII码值表

'9' - 9 = 48

#include<stdioh>

void main()

{

int x,y;

x=y=0;

while(x<15)

{

y++,x+=++y;

printf("%d,%d\n",y,x);

}

printf("%d,%d",y,x);

}

2,2

4,6

6,12

8,20

8,20Press any key to continue上面是运行结果,执行一次while中的语句,y值增加2,x加上的值是y增加2后的值

以上就是关于求高手解释下这个小程序第二个if语句以后的那几行,它是如何实现将多个空格替换为一个空格的呀!!谢谢了全部的内容,包括:求高手解释下这个小程序第二个if语句以后的那几行,它是如何实现将多个空格替换为一个空格的呀!!谢谢了、★C语言 for语句的一个小程序求解、解释一下这个C语言小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10074532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存