wow-string-list文件说明

news/2024/10/20 0:27:38/

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;
}

http://www.ppmy.cn/news/1442669.html

相关文章

P44,45 属性预处理,执行后游戏效果回调,附录指定区域内修改变量

这节课主要是怎么对Attribute进行在进行到游戏角色前先进行处理,以及游戏效果如何回调 AuraAttributeSet.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "AttributeSet.h&…

Docker搭建MySQL Workbench

MySQL Workbench 是一款图形界面工具,用于数据库设计、开发、管理和维护MySQL、MariaDB和Percona Server数据库。它提供了SQL开发、数据库设计、服务器配置等功能。 实际应用场景 数据库设计:创建ER模型,生成数据库架构。SQL开发&#xff1…

接口的构成

目录 接口 一、URL 二、请求方法 三、请求报文(request message) 3.1请求行 3.2请求头 3.3 请求体 四、响应报文(response message) 4.1响应行 4.2响应头 4.3响应体 接口 接口就是API,是程序开发的函数和方…

[97编程世界冠军4K组]代码被转为ts脚本github代码如何在WIN10运行和调试

源代码地址:iGitHub - SuperSodaSea/Omniscent: Analysis and Replication of Omniscent, the 1st in the Mekka & Symposium 1997 PC 4K Intro Competition. 1、软件安装nodejs和webstorm都要安装: node-v20.12.2-x64.msi WebStorm-2024.1.1.exe 代…

文件上传复习(upload-labs14-17关)

因为14-16关需要用到图片码,所以了解一下图片码 利用copy命令合成一个图片马使用_copy 图片马-CSDN博客 图片木马制作方法详细教程_如何制作图片马-CSDN博客 Pass-14(文件包含图片马) 首先,图片的格式在防护中通常是不会使用后…

应用实战 | 别踩白块小游戏,邀请大家来PK挑战~

“踩白块会输”是一个简单的微信小程序游戏,灵感来自当年火热的别踩白块游戏,程序内分成三个模块:手残模式、经典模式和极速模式,分别对应由易到难的三种玩法,可以查看游戏排名。动画效果采用JS实现,小程序…

【真实体验】使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试【YashanDB迁移体验官】

一、前言 说一下我和崖山数据库的结缘,大概在去年吧,因为我经常在墨天轮写文章,看到崖山数据库推出了一崖山体验官的活动,我就报名参加了。第一次体验了崖山数据库,也测试了我司数据库到崖山数据库的兼容性&#xff0…

【Java Spring MVC项目异常解决】HTTP 404

报404错误多数情况下是因为路径问题,特别是在基于MVC框架的Web应用中。HTTP 404错误是客户端错误响应代码,表明服务器无法找到客户端请求的资源(例如,Web页面、图片、文件)。在Spring MVC项目中,404错误常见…