C语言:这道题中flag是什么意思?画圈的语句不明白...
发布网友
发布时间:2022-04-22 00:18
我来回答
共1个回答
热心网友
时间:2022-03-31 16:50
前面一句flag=……中的flag是表示“当前字符是英文字母”。
而后面一句if(flag),从再后面执行的程序(strcpy
......)来看,明显的是删除当前字符的语句,所以只能是当前字符不是英文字母时出现的操作,if语句的含义应该是if(不是英文字符)。
根据c语言对逻辑值的定义,假设当前字符是英文字符,前面是取值flag=1的,这时,不需要删除动作,希望if条件不成立,这就要flag=0。
所以需要对flag进行一次求非运算,flag
=!flag
就行了(1变0,0变1)。
你填的flag=-flag,0还是0(逻辑假);1变成-1,还是逻辑真,等于没有变,所以是错误的。