ylww

随笔仅作学习记录,请辩证参考!!!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

统计单词个数与长度

C++:依据cin的性质,选择cin的返回值作为循环的条件。用 变量名.length() 计算单词的长度。部分代码如下:

(cin >> word) 返回的东西就是cin 本身,故有写法cin >> word >> x;

(cin >> word) == 0在其他编译器可以强行比;

vs中不可以,需要更改,一种如上注释,(非零为真 ,零为假);还有一法:强制类型转换 if((bool)(cin >> word) == 0)

 

 

C:scanf与cin有相似的性质,不同的是scanf遇到文件结束符EOF,返回值是-1。strlen计算长度,strlen(变量名)(scanf输入字符串时,会自动补'\0')。关于ctrl+z的用法,在c版本和c++版本的测试中出现的问题大体一致,故总结

ctrl+z的正确用法为: 输入结束后, 回车+(ctrl+z)+ 回车,部分代码如下:

 

 

统计行数与字符数

 C++:使用getline函数,(getline(cin,变量名))遇到文件结束符返回0。 变量名.length()计算长度,此时,空白字符也算个数(除了回车符)。代码如下:

 getline返回值也是cin, 可以这么写getline(cin,line) >> length;  相当于getline后 cin >> length

vs中与0比较时报错,他的改法和cin一样。(上面图片的用法正确,直接用返回值来做真假.)

 

 

 C语言:使用gets函数,gets(变量名),遇到文件结束符返回值也是0(返回值是指针型,不可与整型1或者-1比较。vc中可以与0强行比较,且vc中无错误报警)(gets也会自动补'\0')。此时strlen计算的字符包括空白字符,但不包括'\0'与回车符。代码如下:

 

gets()/getline()不将回车符送入变量,且会丢弃回车符,回车也不在输入缓冲区中。

cin/scanf则会将回车留在输入缓冲区。

posted on 2022-04-19 13:32  理想主义者光芒万丈  阅读(115)  评论(0)    收藏  举报