unicstl/demo/demo_ustring.c
wjf-hs ad9f642ada feat(ustring): 支持负索引访问并给uview结构新增类别。
- insert问题是set/get/at接口异常导致。
- set/get/at对外索引禁止访问'\0'。和len和capacity一样,保持对外接口的一致性。
2026-05-19 13:50:07 +08:00

57 lines
1.5 KiB
C

/**
* @file demo_ustring.c
* @author wenjf (Orig5826@163.com)
* @brief
* @version 0.1
* @date 2026-05-17
*
* @copyright Copyright (c) 2026
*
*/
#include "demo.h"
void demo_ustring(void)
{
ustring_t str = ustring_new_fromcstr("unicstle string demo. ");
printf("\n@len=%d\n", str->len(str));
str->print(str);
str->append(str, uv("hello world. "));
printf("\n@len=%d\n", str->len(str));
str->print(str);
str->append(str, uvch('#'));
printf("\n@len=%d\n", str->len(str));
str->print(str);
ustring_t str2 = ustring_new_fromcstr("show time! \n");
str->append(str, uvs(str2));
printf("\n@len=%d\n", str->len(str));
str->print(str);
printf("isalpha: %d\n", str->isalpha(str));
printf("isdigit: %d\n", str->isdigit(str));
printf("isalnum: %d\n", str->isalnum(str));
printf("isspace: %d\n", str->isspace(str));
printf("islower: %d\n", str->islower(str));
printf("isupper: %d\n", str->isupper(str));
printf("iscntrl: %d\n", str->iscntrl(str));
printf("isprint: %d\n", str->isprint(str));
printf("ispunct: %d\n", str->ispunct(str));
printf("isgraph: %d\n", str->isgraph(str));
str->tolower(str);
str->print(str);
printf("islower: %d\n", str->islower(str));
str->toupper(str);
str->print(str);
printf("isupper: %d\n", str->isupper(str));
printf("str->tocstr: %s\n", str->cstr(str));
printf("str2->tocstr: %s\n", str2->cstr(str2));
ustring_free(&str);
}