wow-string-list文件说明

wow-string-list文件说明

  • 项目地址:https://gitee.com/wow-iot/wow-iot7
  • 本文件主要功能用于字符串链表相关操作,主要涉及创建、销毁、插入、获取、分隔、格式转换;

初始化与退出:

StringList_T* wow_stringlist_new(void)
{
	return (StringList_T*)wow_slist_create();	
}
void wow_stringlist_free(StringList_T** pptStrList)
{
	wow_slist_destroy(pptStrList,slist_free_func);
}

字符串链表添加元素

int wow_stringlist_append(StringList_T* ptStrList, const char *pcElem)
{
	CHECK_RET_VAL_P(ptStrList,-PARAM_INPUT_STRUCT_IS_NULL,"param input struct invalid!\n");
	CHECK_RET_VAL_P(pcElem && strlen(pcElem) > 0,-PARAM_INPUT_DATA_IS_NULL,"param input data invalid!\n");

	int len = strlen(pcElem);

	char* data = MALLOC(len + 1);
	CHECK_RET_VAL_P(data,-SYSTEM_MALLOC_FAILED,"malloc data size!\n");
	memset(data,0,len + 1);
	memcpy(data,pcElem,len);

	return wow_slist_insert_tail(ptStrList,data);
}

获取字符串链表元素个数与内容

int wow_stringlist_size(StringList_T* ptStrList)
{
	return wow_slist_size(ptStrList);
}
char* wow_stringlist_data(StringList_T* ptStrList,int nIdx)
{
	return (char*)wow_slist_peek_by_index(ptStrList,nIdx);
}

字符串链表元素格式转换

int wow_stringlist_toInt(StringList_T* ptStrList,int nIdx)
{
	char* data = (char*)wow_slist_peek_by_index(ptStrList,nIdx);
	CHECK_RET_ABORT(data);

	return strtol(data,NULL,10);
}

float wow_stringlist_toFloat(StringList_T* ptStrList,int nIdx)
{
	char* data = (char*)wow_slist_peek_by_index(ptStrList,nIdx);
	CHECK_RET_ABORT(data);

	return (float)strtod(data,NULL);
}

分割字符串

StringList_T* wow_stringlist_split(char *pcStr, const char *pcDelim)
{
	StringList_T* ptStrList = wow_stringlist_new();
	CHECK_RET_VAL_P(ptStrList,NULL, "string_list new failed!\n");

	char *copy = strdup(pcStr);
	CHECK_RET_GOTO_P_A(copy,out, "strdup failed!\n");

	int ret = -1;
	char *token = strtok(copy, pcDelim);
	while (token){
		ret = wow_stringlist_append(ptStrList, token);
		CHECK_RET_GOTO(ret == 0,out);

		token  = strtok(NULL, pcDelim);
	}

	free(copy);
	return ptStrList;

out:
	wow_stringlist_free(&ptStrList);
	free(copy);
	return NULL;
}

相关推荐

  1. wow-string-list文件说明

    2024-04-26 11:58:04       18 阅读
  2. wow-type文件说明

    2024-04-26 11:58:04       14 阅读
  3. wow-socket文件说明

    2024-04-26 11:58:04       16 阅读
  4. wow-slist文件说明

    2024-04-26 11:58:04       15 阅读
  5. wow_iot模块说明

    2024-04-26 11:58:04       8 阅读
  6. 【积累】stringlist

    2024-04-26 11:58:04       20 阅读
  7. 将`ListString>`转换为`List<Long>`

    2024-04-26 11:58:04       33 阅读
  8. .gitignore 文件说明文档

    2024-04-26 11:58:04       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 11:58:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 11:58:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 11:58:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 11:58:04       18 阅读

热门阅读

  1. 设置Ollama在局域网中访问的方法(Ubuntu)

    2024-04-26 11:58:04       13 阅读
  2. CentOS即将停服,国产化系统替代参考

    2024-04-26 11:58:04       11 阅读
  3. Pytorch:神经网络过程代码详解

    2024-04-26 11:58:04       13 阅读
  4. 算法之重:探寻开发者不可忽视的基石力量

    2024-04-26 11:58:04       10 阅读
  5. 【车载测试专项】 整车控制器 逻辑时序测试

    2024-04-26 11:58:04       14 阅读
  6. 【ARMv9 DSU-120 系列 9.1 -- ROM tables】

    2024-04-26 11:58:04       12 阅读
  7. ROS2 学习笔记(三) 工作空间与功能包的创建

    2024-04-26 11:58:04       11 阅读
  8. Node.js -- 模块化

    2024-04-26 11:58:04       10 阅读
  9. 阿里云购买磁盘,挂载到/root/XXXX 详细的步骤

    2024-04-26 11:58:04       11 阅读
  10. Elasticsearch索引中数据的增删改查与并发控制

    2024-04-26 11:58:04       11 阅读