C++实现键值对

键值对(”key = valude”)字符串,在开发中经常使用;

要求1:请自己定义一个接口,实现根据key获取valude;40分

要求2:编写测试用例。30分

                   要求3:键值对中间可能有n多空格,请去除空格30分

注意:键值对字符串格式可能如下:

                   “key1=valude1”

“key2 =     valude2     ”

“key3  = valude3”

“key4        = valude4”

“key5   =   “

“key6   =“

“key7   =   “


int trimSpace(const char *inBuf, char *outBuf)
{
	int i = 0,j =0;
	int nCount;
	if (!inBuf || !outBuf)
	{
		return -1;
	}
	j = strlen(inBuf) - 1;
	while (isspace(inBuf[i]) && inBuf[i] != '\0')
	{
		i++;
	}


	while (isspace(inBuf[j]) && j > 0)
	{
		j--;
	}
	nCount = j - i + 1;
	strncpy(outBuf, inBuf + i, nCount);
	return 0;
}

int getKeyByValue(const char *keyvaluebuf, const char *keybuf,  char *valuebuf)
{
	char *p = NULL;
	char strResult[100] = {0};


	if (keyvaluebuf == NULL || keybuf == NULL || valuebuf == NULL)
	{
		return -1;
	}
	p = strstr(keyvaluebuf, keybuf);
	if (p == NULL)
	{
		return -1;
	}
	p = strstr(p, "=");
	p++;


	trimSpace(p, strResult);
	memcpy(valuebuf, strResult,strlen(strResult));
}

int main()
{
	char *keyvaluebuf = "dsadc = ewqds";
	char valuebuf[100] = {0};
	getKeyByValue(keyvaluebuf, "dsadc", valuebuf);
	printf("%s",  valuebuf);
	return 0;
}



这样写有个bug就是当可以为dsadcdsadc的时候和key为dsadc的时候结果是一样的,先这样,后续改进


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值