文本处理中的小细节

1.char还是uchar(unsigned char)

  char在C/C++中占用1byte(即8bits)。

  ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。标准ASCII码是7位二进制表示,表示128个字符(0~127),最高位是0。如 00110000(2) =48D=30H='0'。

  由于char能表示的范围是(-128~127),英文中使用了0~127号编码的字符(符号位为0,正数)。一个汉字占2byte,为了使得汉字的两个字节不与英文字母混淆,表示汉字的每个字节符号位都为1(负数)。

  在处理文本时,最好使用unsigned char(0~256),因为文本中可能会有含有特殊字符(不一定是标准ASCII),也就是读入的每个字符的ASCII码可能不在0~127之间。

  下面的程序输出字符的ASCII码:

 1 #include <iostream>
 2 using namespace std;
 3 int main ()
 4 {
 5     string str ("hi你好");    ///6个字节,每个中文占2个字节
 6     cout<<"Text:"<<str<<endl;
 7     for(int i=0;i<str.size();i++)
 8         printf("i=%d    c_c=%c      c_d=%d\n",i,str[i],(unsigned char)str[i]);
 9     return 0;
10 }

2.换行符号

  win和linux下面的换行符号不同。win下面的换行符是“\r\n”,linux下面的换行符是“\r”。

  使用下面的程序读取文件中的每一行并显示长度:

 1 #include <fstream>
 2 #include <iostream>
 3 #include <string>
 4
 5 using namespace std;
 6 int main(int argc,char* argv[]){
 7     fstream fin(argv[1]);  ///参数为文件名
 8     string readline;
 9     while(getline(fin,readline)){  ///逐行读取,直到结束
10         cout<<readline<<"\t"<<readline.size()<<endl;
11     }
12     fin.close();
13     return  0;
14 }

 (1)win下面建立文件a_win.txt,在linux下面打开正常

  分别在win、linux下执行结果如下,可以看出长度差1(就是最后的“\r”):

  (2)linux下面建立文件a_unix.txt,在win下面打开没有换行

  分别在win、linux下执行结果如下,可以看出长度相同:

 

  可见,win和linux程序都可以识别'\n'为换行符。win下会多一个字符‘\r’。

 

时间: 2024-10-09 12:05:22

文本处理中的小细节的相关文章

请教javaScript中的小细节-----

问题描述 刚看了一点JS的视频:这样写<scriptlanguage="javascript">alert(newDate());</script>当中去掉""和new运行正常,既然这样干嘛要带上,有区别吗?另外<inputtype=hiddenname=uservalue=james><inputtype=passwordname=code><inputtype=filename=file1>里面也可以完

C++11中的小细节--字符串的原始字面量

原始字面量很容易理解,即不进行转义的完整字符串. 最近看了看Python,其中讲到了原始字符串. Both string and bytes literals may optionally be prefixed with a letter 'r' or 'R'; such strings are called raw strings and treat backslashes as literal characters. As a result, in string literals, '\U

网站seo优化过程中的致命细节

大家都知道网站在做seo优化的过程中要把握的一些重点,诸如内容的更新.外链的建设等等.但是有一些优化过程中的小细节也决不能忽视,这些小细节虽然并不能直接的为网站带来多好的排名,或者多少的流量,但是往往是这些细节上的问题对网站seo来说却是致命的.   1.服务器的稳定性. 服务器或者空间是否稳定对任何网站来说都是至关重要的,但往往有些人会是这样的"细节问题".网站并不是只要可以访问就万事大吉的,网站是需要时刻保证正常访问的.有些朋友由于资金的问题选择租用国外的空间,或者不太稳定但价格低

浅析在文章内容中锚文本使用的三个细节

文章内容中锚文本使用的三个细节-文章锚文本">  对于搜索引擎和用户的友好体验来说锚文本的功效可能是在几种链接形式中效果最好的.对于这点我想很做站长都深有体会.对于锚文本的定义,我们可以定义为外链建设的锚文本还有內链建设的锚文本.对于外链建设中的锚文本可能我们接触的比较多,对于其细节也比较注意,而我们往往容易忽略內链建设中的锚文本使用的细节.而站内的锚文本的使用对于我们站点的內链建设中有起着关键性的作用.如果处理的不好的话,不仅用户体验性差,还可能引起搜索引擎不必要的惩罚.那么对于站内锚文

网页设计中文本排版的技巧和细节

网站的核心是内容,用户访问网站最重要的目的就是要看网站的正文,所以,网页的文本排版非常重要. 网页的文本排版并不是仅仅在CSS里设置个字体大小那么简单的,想要有好的排版,对细节要下一番功夫才行. 字体大小与行距 在早期的网页设计中,设计师为了追求中文字体的最佳视觉效果,经常使用12px像素的字号.其实在现在看来,网站内容页面用这么小的文字是不可取的,小字体的可读性很差,没有多少人愿意非常费力的盯着屏幕去辨识那些小字.应该说,将文字的字号设置成14px或者更大的16px会更加合理,浏览者阅读起来也

网页中图片幻灯片用户体验设计小细节

图片幻灯片是网页中最常见的一种效果,功能几乎差别不大,可很多网页设计师可能都没有考虑过这种最常用的幻灯片其中所涵盖的用户体验思想,本文通过国内外几家大型网站中的幻灯片来分析他们各自的设计小细节及给我们带来的体验 1.卓越亚马逊的首页轮换图片,每刷新一次,都是随机不同的顺序显示,这样的设计解决了对于较多图片轮换而靠后的图片信息很少被看到的问题,这点对于电子商务等时效性不是很讲究的网站来说尤其重要: 2.最初的时候是点击照片跳转到下一张,再然后是点击照片的左边是上一张,点击照片右边是下一张,当我们习

浅谈站点升级过程中你必须注意到的几个小细节

  每一个站点为了提高安全性.用户的友好体验度等等,都免不了要对站点进行升级.而升级对于站点的SEO的影响又是刻骨铭心的.如果此时你的网站已经有不错的搜索结果排名.升级给网站所造成的冲击也是不可避免的.站长们都知道这个影响轻则会对网站的排名产生负面影响,严重的话很可能会因为处理不好而遭到搜索引擎不必要的惩罚.那么我们在升级过程中要如何降低对网站造成的影响呢?我们需要注意到很多问题,尤其是在一些小细节上.不然的话千里之堤将可能毁于蚁穴. 细节一:切忌直接在线上修改 一个站点的升级并不容易,期间可能

c++问题-c++中关于模板的一些小细节

问题描述 c++中关于模板的一些小细节 今天突然看到一细节,在模板中 template和template的区别是什么 解决方案 C++中typename和class的区别http://blog.163.com/susu_sf/blog/static/171060253201092233759957/ http://blog.csdn.net/dick_china/article/details/4522253 解决方案二: C++中typename和class的区别http://blog.163

电子商务成败 小细节中的大智慧

对于细节的作用和重要性的认识,古已有之,中外共见.老子曾说:"天下难事,必做于易:天下大事,必做于细",它精辟地指出了想成就一番事业,必须从简单的事情做起,从细微之处入手.与此类似,20世纪世界最伟大的建筑师之一的密斯?凡?德罗,在被要求用一句话来描述他成功的原因时,他也是只说了五个字:"魔鬼在细节".这些经典名言对于做人做事具有普适性,搞好http://www.aliyun.com/zixun/aggregation/37605.html">电子商