C/C++实现strcpy和strcat两个功能
程序员文章站
2022-03-14 08:36:54
C/C++实现strcpy和strcat两个功能。
strcmp和strcat是string.h头文件中分别实现字符串数组拷贝与拼接功能的函数,详细使用相信大家都了解了,如果还不...
C/C++实现strcpy和strcat两个功能。
strcmp和strcat是string.h头文件中分别实现字符串数组拷贝与拼接功能的函数,详细使用相信大家都了解了,如果还不了解看看实例 C/C++笔试必须熟悉掌握的头文件系列(四)——string.h/cstring就知道怎么使用了。
下面我们直接来看看具体实现:
1 strcpy实现
char* myStrcpy(char* pre, const char* next) { if (pre == nullptr || next == nullptr) //空指针直接返回 { return nullptr; } if (pre == next) // 两者相等也无需拷贝了 return pre; while ((*pre++ = *next++) != '\0'); // 依次赋值给主字符数组 return pre; }
上面程序实现了strcpy的程序,实现很简单依次赋值给朱字符数组即可,当遇到next指向字符串结束字符’\0’后,完成赋值并且停止赋值。这样新赋值的’\0’就成了字符数组表示的字符串结尾符,哪怕主字符串pre比next长也会戛然而止。字符串判断不管字符数组存了啥,它只认到’\0’前的数是它的主体核心部分。
2 strcat实现
char* myStrcat(char* pre, const char* next) { if (pre == nullptr || next == nullptr) // 如果有一个为空指针,直接返回pre return pre; char* tmp_ptr = pre + strlen(pre); //strlen计算字符数,需要包含都文件string.h,当然也可以自己实现 while ( (*tmp_ptr++ = *next++) != '\0'); // 依次接着赋值 return pre; }
上面程序实现了strcat拼接的功能,主要依靠新申请的一个指针先指向主字符数组的尾部,然后依次将另个字符数组字符赋值给后面的空间(可能有些人有疑惑,为什么没有申请额外空间就直接使用后面的空间,实际上这个是简版的写法,所以要求传入指针pre指向的字符数组有足够大的空间,看下面完整程序你就明白了。)
下一篇: C语言实现求解最小公倍数的算法示例
推荐阅读
-
C++实现用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
-
C/C++实现strcpy和strcat两个功能
-
JS和C#实现的两个正则替换功能示例分析
-
C语言模拟实现strcat、strcmp和strcpy,详解代码及过程
-
C/C++ 这类更底层的语言,如果把平时常用的高级函数和功能都实现,能否达到 Python 的开发效率?
-
JS和C#实现的两个正则替换功能示例分析
-
C/C++ 这类更底层的语言,如果把平时常用的高级函数和功能都实现,能否达到 Python 的开发效率?
-
分享JS和C#实现的两个正则替换功能实例
-
JS和C#实现的两个正则替换功能示例分析
-
分享JS和C#实现的两个正则替换功能实例