对fgets末尾'\0'的处理
来源:互联网 发布:网络机顶盒哪家强 编辑:程序博客网 时间:2024/05/29 13:24
之所以要对fgets自动添加的字符进行处理的原因之一是:当你想比较输入的字符时,你会发现输入的字符和源码用来进行对比的字符一模一样,但是使用strcmp比较时就是不一样,原因就是fgets对输入字符添加了一个字–符造成的.
怎么造成的呢?
strcmp会比较这个字符串所有的内容,长度都不一样,肯定不同.
如何解决?
把输入字符长度"截去"一个的就行
#include "iostream"#include "stdio.h"#include "stdio_ext.h"#include "stdlib.h"#include "string.h"using namespace std;int main(int argc, char const *argv[]){ char buf[1024]; char buf1[] = "www"; int len_buf = 0; int len_buf1 = 0; while(true){ __fpurge(stdin); fgets(buf,sizeof(buf),stdin); cout<<"buf="<<buf; cout<<"buf1="<<buf1<<endl; len_buf = strlen(buf); buf[len_buf-1] = '\0'; //在这里截去 len_buf1 = strlen(buf1); cout<<"len_buf="<<len_buf<<endl; cout<<"len_buf1="<<len_buf1<<endl; // if (strncmp(buf,buf1,3) == 0) if (strcmp(buf,buf1) == 0) { cout<<"is equal"<<endl; }else { cout<<"isn't equal"<<endl; } } return 0;}
0 0
- 对fgets末尾'\0'的处理
- 对fgets末尾'\0'的处理
- fgets 与 对回车符的处理
- 验证fgets末尾自动添加的字符是'\0' 还是 '\n\'?
- 验证fgets末尾自动添加的字符是'\0', 还是'\n'.
- 删除fgets()获得的字符串末尾的换行符
- java处理小数点末尾的0
- Java中数字处理去掉末尾的0
- 如何删除fgets(...)取到的字符串末尾的换行符?
- 阶乘末尾的0
- 末尾0的个数
- 末尾0的个数
- 末尾0的个数
- 末尾0的个数
- 末尾0的个数
- 末尾0的个数
- 文件末尾出现^M的处理方式
- poj1401(N!末尾0的末尾0的个数)
- 一种异常处理的方法、装置和软件系统
- B. Grandfather Dovlet’s calculator【水题】
- Practical Rendering and Computation with Direct3D 11学习笔记(2.2.1)
- String为什么被设计成final以及字符串池的学习
- Android ANR 分析解决方法
- 对fgets末尾'\0'的处理
- 北邮OJ 255. 奇偶求和-软件14 2014年北京邮电大学软件工程学院研究生复试
- android json解析及简单例子
- 基于空间金字塔池化的卷积神经网络物体检测
- rabbitmq 学习网站
- 【bzoj1076】[SCOI2008]奖励关 状压DP
- 学习列表
- cocopods安装使用和安装过程中遇到的问题及解决办法(2016)
- VIM配置