如何去掉string中包含的续行符(“\”)
2016-07-26 10:58
337 查看
在写配置文件中,遇到了一个很长的字符串需要处理,而这个字符串中添加了续行符”\”,在把数据写到配置文件中时,续行符会导致下一行的数据前面出现很多空格,十分不美观。那么该如何去掉续行符呢?
一开始我想直接使用string中的find函数来查找“\”,但测试之后发现找不到续行符,调试中也看不到,但输出到配置文件中,则有许多空格。我注意到我需要保存的数据都是以大小写字母或者数字开头的,那么把在第一个字母或者数字之前的内容全部去掉,只保留从第一个字母或数字开头的字符串,是否可以成功呢。
是的,我成功了,虽然取了巧,但是还蛮有成就感,嘿嘿。
测试代码如下:
配置文件中的内容如下:
一开始我想直接使用string中的find函数来查找“\”,但测试之后发现找不到续行符,调试中也看不到,但输出到配置文件中,则有许多空格。我注意到我需要保存的数据都是以大小写字母或者数字开头的,那么把在第一个字母或者数字之前的内容全部去掉,只保留从第一个字母或数字开头的字符串,是否可以成功呢。
是的,我成功了,虽然取了巧,但是还蛮有成就感,嘿嘿。
测试代码如下:
#include <Windows.h> #include <iostream> using namespace std; int main() { const string strInformation("\ student1 zhangsan,\ student2 lisi,");//需要写入的字符串,演示特意添加了续行符 const string savePath("D:\\student.ini");//定义文件保存路径 int startPos;//find函数使用 int endPos; //find函数使用 string tempStr; //临时字符串 //读取第一个学生信息 startPos=0; endPos = strInformation.find(",",startPos);//取第一个逗号之前的数据 if (-1 == endPos) { return -1;//这里做测试,我们肯定可以找到,故不做过多处理 } tempStr = strInformation.substr(startPos,endPos-startPos);//获取 \student1 zhangsan WritePrivateProfileString("StudentInformation","1",tempStr.c_str(),savePath.c_str());//写入ini文件中 //读取第二个学生信息 startPos = endPos+1; endPos = strInformation.find(",",startPos);//取第二个逗号之前的数据 if (-1 == endPos) { return -1;//这里做测试,我们肯定可以找到,故不做过多处理 } tempStr = strInformation.substr(startPos,endPos-startPos);//获取 \student2 lisi //去掉续行符 int a = tempStr.find_first_of("abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789");//寻找第一个字母或数字的位置 tempStr = tempStr.substr(a);//从字母或数字开始的位置开始复制,复制到最后,去掉了前面的续行符 WritePrivateProfileString("StudentInformation","2",tempStr.c_str(),savePath.c_str());//写入ini文件中 system("pause"); return 0; }
配置文件中的内容如下:
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- Redis02 使用Redis数据库(String类型)全面解析
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- 关于C++ string和c类型字符数组的对比
- C#中string和StingBuilder内存中的区别实例分析
- 详解C++中实现继承string类的MyString类的步骤
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法