c++的c风格字符串函数的实现

Posted jz_cnblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++的c风格字符串函数的实现相关的知识,希望对你有一定的参考价值。

  要注意使用断言判断传入的字符串非空。

 1 #include <cassert>
 2 
 3 //字符串复制
 4 char* StrCpy(char *dest, const char *src)
 5 {
 6     assert(dest != nullptr && src != nullptr);
 7     char *temp = dest;
 8     while ((*dest++ = *src++) != \0);
 9     return temp;
10 }
11 
12 //求字符串长度
13 size_t StrLen(const char *str)
14 {
15     assert(str != nullptr);
16     size_t len = 0;
17     while (*str++ != \0)
18     {
19         ++len;
20     }
21     return len;
22 }
23 
24 //字符串比较
25 int StrCmp(const char *lhs, const char *rhs)
26 {
27     assert(lhs != nullptr && rhs != nullptr);
28     int ret = 0;
29     while (!(ret = *(const unsigned char *)lhs - *(const unsigned char *)rhs) && *rhs)
30     {
31         ++lhs;
32         ++rhs;
33     }
34     if (ret < 0)
35     {
36         return -1;
37     }
38     else if (ret == 0)
39     {
40         return 0;
41     }
42     else
43     {
44         return 1;
45     }
46 }
47 
48 //字符串连接
49 char* StrCat(char *dest, const char *src)
50 {
51     assert(dest != nullptr && src != nullptr);
52     char *temp = dest;
53     while (*dest)
54     {
55         ++dest;
56     }
57     while ((*dest++ = *src++) != \0);
58     return temp;
59 }

 

以上是关于c++的c风格字符串函数的实现的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 代码中使用 K&R 风格的 C 函数

改一下OI代码风格

C++ 流与 C 风格的 IO?

C++11 现代C++风格的新元素--简介

动态数组C风格字符串字符串字面值

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情