c++删除txt中空格 符号
用VC编的程序,打开一个txt文件,读出里面内容,包括中文、英文、符号、空格,删除里面所以空格、英文、符号和换行,只留下一长串的中文,从新建立一个TXT文件输出。最好写出...
用VC编的程序,打开一个txt文件,读出里面内容,包括中文、英文、符号、空格,删除里面所以空格、英文、符号和换行,只留下一长串的中文,从新建立一个TXT文件输出。
最好写出完整cpp代码,谢谢。 展开
最好写出完整cpp代码,谢谢。 展开
1个回答
展开全部
给你个提取中文字符的函数,文件读写就自己写吧。运行环境VS2008.
GB2312编码的特性:将ASCII码表中161-255(-95~-1)之间的数值空间作为汉字的标识码。
处理字符时,当连续处理到两个大于160(或-95~-1)的字节时,就认为这两个字节存放了一个汉字字符。
#include <atlstr.h>
#include <iostream>
using namespace std;
CString FilterString(CString strIn)
{
strIn.Replace(" ", "");
strIn.Trim();
int iLen = strIn.GetLength();
if (!(iLen > 0))
{
return "";
}
char * pstrIn = strIn.GetBuffer();
CString strOut = "";
int iFlag = 0;
for(int i =0 ;i < iLen ;i++)
{
if(pstrIn[i] > 0xa0 || (pstrIn[i] < 0 && pstrIn[i] >= -95))
{
if(iFlag == 1)
{
strOut.AppendChar(pstrIn[i-1]);
strOut.AppendChar(pstrIn[i]);
iFlag = 0;
}
else
{
iFlag=1;
}
}
}
strIn.ReleaseBuffer();
return strOut;
}
int main()
{
CString strMsg = " hello孟姜女123, 。。 ..?;'\r\n哭长城owjyrend";
cout<<"o源字符串: "<<strMsg<<endl;
cout<<"o转换符串: "<<FilterString(strMsg)<<endl;
return 0;
}
这里中文标点符号也算是中文字符。
GB2312编码的特性:将ASCII码表中161-255(-95~-1)之间的数值空间作为汉字的标识码。
处理字符时,当连续处理到两个大于160(或-95~-1)的字节时,就认为这两个字节存放了一个汉字字符。
#include <atlstr.h>
#include <iostream>
using namespace std;
CString FilterString(CString strIn)
{
strIn.Replace(" ", "");
strIn.Trim();
int iLen = strIn.GetLength();
if (!(iLen > 0))
{
return "";
}
char * pstrIn = strIn.GetBuffer();
CString strOut = "";
int iFlag = 0;
for(int i =0 ;i < iLen ;i++)
{
if(pstrIn[i] > 0xa0 || (pstrIn[i] < 0 && pstrIn[i] >= -95))
{
if(iFlag == 1)
{
strOut.AppendChar(pstrIn[i-1]);
strOut.AppendChar(pstrIn[i]);
iFlag = 0;
}
else
{
iFlag=1;
}
}
}
strIn.ReleaseBuffer();
return strOut;
}
int main()
{
CString strMsg = " hello孟姜女123, 。。 ..?;'\r\n哭长城owjyrend";
cout<<"o源字符串: "<<strMsg<<endl;
cout<<"o转换符串: "<<FilterString(strMsg)<<endl;
return 0;
}
这里中文标点符号也算是中文字符。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询