问题描述
- 最近在做ACM题 发现些c语音细节问题
-
#include<cstdio>#include<cstring>int main(){ char s[100]; scanf(""%s""s); if(-1>=strlen(s)) printf(""truen""); return 0;}
竟然打印出true 求解答!!!
解决方案
在Visual C++ 6.0中,原型为size_t strlen(const char *string); ,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t;
-1转换成无符号了。所以变成一个很大的数
解决方案二:
应该是 c语言 笔误 。。。。
时间: 2024-12-05 04:37:48