C++配置文件

配置文件

先来看一下配置文件的格式
在这里插入图片描述
首先读取 ,以[]为单位分割,一个[key]对应其下面的key=value ,直到遇到下一个主[key]。
数据结构如下:
数据结构
在插入的时候可以插入主[key] 也可以一组一组插入,但会执行查重!!

这里分享一个字符串切割函数 是我自己写的

作用:传入一端字符串 传入需要的字符串所对应的索引 就会返回对应索引的字符串!
例如:
目标字符串为:123-456-1-5-7-3453-24-4576456
输入:5
返回:7

//字符串切割函数
void CutStringsByIndex(int index, char* dest, const char* src)
{
   
	//根据索引切割字符串函数   
	//配合去除空格的函数一起使用
	//dest 切割后传回去的字符串   src 目标字符串
	//k+1=符号的数量

	//获取符号的下标位置 和符号数量
	int len = strlen(src);
	int t[100] = {
    0 };
	int k = 0;
	for (int i = 0; i < len; i++)
	{
   
		if (src[i] == '=')
		{
   
			t[k] = i;
			k++;
		}
	}
	//有k+1个符号  
	//从第二次开始  开始拷贝的位置为符号的下一位  长度为符号的下下一位-开始拷贝的位置
	if (index - 1 > k || index < 0)
	{
   
		printf("ERROR!超出索引");
		return;
	}

	//计算开始位置
	int start[100] = {
    0 };
	for (int i = 1; i <= k; i++)
	{
   
		start[i] = t[i - 1] + 1;
		//printf("%d-", start[i]);
	}

	//计算截取长度
	int Length[100] = {
    0 };
	for (int i = 1; i < k; i++)
	{
   
		Length[i] = start[i + 1] - start[i] - 1;
		//printf("%d=", Length[i]);
	}

	//123-456-789-25-33-666
	//0123456789012345678901
	//k=6     开始  长度
	//index 1 0 3                   0  
	//index 2 4 3 *            1    1  t[0] 3  start[1] 4     length[1] 3
	//index 3 8 3 *            2    2  t[1] 7  start[2] 8	  length[2] 3
	//index 4 12 2 *           3    3  t[2] 11 start[3] 12	  length[3] 2
	//index 5  15 2 *          4    4  t[3] 14 start[4] 15	  length[4] 2
	//index 6  18 3     21     5    5  t[4] 17 start[5] 18	  


	if (index == 1)
		strncpy(dest, &src[0], t[0]);
	else if (index == k + 1)
		strncpy(dest, &src[start[index - 1]], len - start[index - 1]);
	else //2 3 4 5 
		strncpy(dest, &src[start[index - 1]], Length[index - 1]);


}

去除空格、换行

//去除换行   abc\n  =>abc
//去除空格  "  abc   "  =>abc
void RemoveNull(char str[])
{
   

	//从后往前去换行
	int buff[1024] = {
    0 };
	int len = strlen(str);
	for (int i = len - 1; i > 0; i--)
	{
   
		if (str[i]=='\n')
		{
   
			strncpy(buff, &str[0], i);
			strcpy(str, buff);
			break;
		}
	}
	//从后往前去空格
	char buffn[1024] = {
    0 };
	len = strlen(str);
	for (int i = len-1; i > 0; i--)
	{
   
		if (str[i]==' ')
		{
   
			strncpy(buffn, &str[0], i);
			strcpy(str, buffn);
			break;
		}
	}
	len = strlen(str);
	//从前往后去空格
	char buffer[1024] = {
    0 };
	for (int j = 0; j < len; j++)
	{
   
		if (str[j] == ' ')
		{
   
			//如果第1位不是空格从最前面开始复制  把字符串复制给buffer
			strncpy(buffer, &str[j+1],len-j-1);
			//再把buffer复制给str
			strcpy(str, buffer);
			break;
		}

	}

}

下面附上配置文件的代码:

有兴趣可以看一下

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HBuilderX是一款基于Eclipse的开发工具,主要用于快速构建跨平台的移动应用,但它主要支持的是H5、Java和原生Android/iOS开发。对于C++配置,HBuilderX本身并不直接支持C++的开发,因为它的主要定位是Web和移动应用开发。 如果你是在使用HBuilderX进行C++项目的开发,并且想要管理编译设置,你可能会涉及到Eclipse CDT(C/C++ Development Tools)的相关配置。在Eclipse中,C++配置文件通常是指`.cproject`或`.ccproj`文件,它们用于存储项目属性、构建路径、编译器选项等信息。 `.cproject`文件是早期版本的CDT使用的,而`.ccproj`是更现代的XML格式。在HBuilderX中创建或编辑这些文件,你需要: 1. 打开"项目" > "属性"(Properties)。 2. 在左侧导航菜单中选择"C/C++ Build" > "Settings"(或"Build Settings")。 3. 在这里,你可以配置构建目录(Working Directory)、工具链(Toolchains)、编译器选项(如包含路径、链接器选项等)。 4. 对于调试,还需要配置"Debug"标签页下的相关选项,如调试器路径、启动程序等。 如果你在使用HBuilderX的C++插件,可能还有额外的配置步骤,比如启用插件的C++支持,配置代码分析或代码提示等。 由于HBuilderX并不是专门针对C++的IDE,一些高级的C++特性或者特定的项目配置可能需要你手动调整或者在其他C++ IDE(如Visual Studio或Code::Blocks)中完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值