目的
有时从pdf拷贝出txt文档后,不应该断句的地方换行了,看着特难受。所以写了个C++程序,将txt文档进行整理,去除不应该的换行符。还考虑到文档中存在中英文混合的问题。
思路
从一个源文件逐行读取,如果不是以中、英文的句号、引号、问号结尾的,就去除换行符。
英文字符结尾的很好处理。
中文结尾的字符就相对复杂,因为中文占用两个字符位,使用最后一个字符位就是一个乱码。所以获取最后一个字符后,首先判断是不是中文,如果最后一个字符是中文字符,就获取最后两个字符。
程序涉及:
如何获取一个string的最后一个字符:
str[str.size()-1];
或
str.substr(str.size()-1,1);
如何判断一个字符是否为中文字符:
char&0x80==true; 就是中文字符。
编程IDE:windows系统下的codeblocks。
in.txt和out.txt的路径,根据自己系统修改。
注意:in.txt为ANSI格式。in.txt为ANSI格式。in.txt为ANSI格式。
如果需要添加更多条件来删除换行符,请添加到if语句中。
整体代码如下:
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string temp;
string templast;
ifstream infile("D:\\in