雖然編寫了非常簡單的程序來清除空白,製表符,換行符,但遇到了一些我實際上並未首先捕獲的東西;即使如果條件爲真,只有當選項卡,空格或換行不存在,但它仍然與所提到的由於某種原因,執行..這裏是代碼C歧義問題
#include <cstdio>#include <cstring>
#include <stdio.h>
#include <string.h>
#define LGT 100
void rem(char s[])
{
int i;
for(i=(strlen(s)-1);i>=0;i--)
if(s[i]!=' ' || s[i]!='\t' || s[i]!='\n')
break;
s[i+1]='\0';
}
int main(void)
{
char v[LGT]={"sdsfg\t"};
rem(v);
printf("%s\n",v);
getchar();
}
這`=`和``||是一個標準的邏輯問題。你應該在紙上寫下幾個案例,並慢慢仔細地評估它們。 – 2011-01-27 20:14:31
這不是有效的C,只是很差的C++。這是什麼? – GManNickG 2011-01-27 20:38:16
@GMan:畢竟它應該是C ...... – Christoph 2011-01-27 21:30:25