From 041c1df929b1bca19b4760d27a3d8f9961dc92ce Mon Sep 17 00:00:00 2001 From: lixianjing Date: Mon, 3 Jul 2023 18:14:25 +0800 Subject: [PATCH] str_append_uint32 --- docs/changes.md | 1 + src/tkc/str.c | 7 +++++++ src/tkc/str.h | 10 ++++++++++ tests/str_test.cc | 12 ++++++++++++ 4 files changed, 30 insertions(+) diff --git a/docs/changes.md b/docs/changes.md index d79419895..82d79ce76 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -2,6 +2,7 @@ 2023/07/03 * 增加控制台应用类型(感谢兆坤提供补丁) + * 新增str\_append\_uint32(感谢陈聪提供补丁) 2023/06/30 * 增加函数conf\_ini\_load\_from\_buff/conf\_ini\_save\_to\_buff diff --git a/src/tkc/str.c b/src/tkc/str.c index ff4ad028b..f00da4e32 100644 --- a/src/tkc/str.c +++ b/src/tkc/str.c @@ -176,6 +176,13 @@ ret_t str_append_int(str_t* str, int32_t value) { return str_append(str, num); } +ret_t str_append_uint32(str_t* str, uint32_t value) { + char num[32] = {0}; + tk_snprintf(num, sizeof(num) - 1, "%u", value); + + return str_append(str, num); +} + ret_t str_append_int64(str_t* str, int64_t value) { char num[64] = {0}; tk_snprintf(num, sizeof(num) - 1, "%" PRId64, value); diff --git a/src/tkc/str.h b/src/tkc/str.h index a66b1f8b8..63d066e56 100644 --- a/src/tkc/str.h +++ b/src/tkc/str.h @@ -300,6 +300,16 @@ ret_t str_append_n_chars(str_t* str, char c, uint32_t n); */ ret_t str_append_int(str_t* str, int32_t value); +/** + * @method str_append_uint32 + * 追加一个uint32整数。 + * @param {str_t*} str str对象。 + * @param {uint32_t} value 要追加的整数。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t str_append_uint32(str_t* str, uint32_t value); + /** * @method str_append_int64 * 追加一个int64整数。 diff --git a/tests/str_test.cc b/tests/str_test.cc index 4fb87a4bf..b656215a1 100644 --- a/tests/str_test.cc +++ b/tests/str_test.cc @@ -552,6 +552,18 @@ TEST(Str, uint64) { str_reset(&str); } +TEST(Str, uint32) { + str_t str; + str_init(&str, 100); + ASSERT_EQ(str_append_uint32(&str, 123), RET_OK); + ASSERT_STREQ(str.str, "123"); + str_reset(&str); + + ASSERT_EQ(str_append_uint32(&str, 0xffffffff), RET_OK); + ASSERT_STREQ(str.str, "4294967295"); + str_reset(&str); +} + TEST(Str, reverse) { str_t str; str_init(&str, 100);