C语言:#include <string.h>
C++语言:#include <cstring>
C++ 中有三类头文件:
第一类是原始的C头文件,用 #include <string.h>,注意带.h,这跟C是兼容的。
第二类是用标准化的C兼容头文件,用 #include <cstring>,注意不带 .h,其实际内容跟 string.h 完全相同。
第三类是标准化的C++的头文件,全新的,用 #include <string>,跟C的 string.h 没有关系。
扩展知识:
strcpy,即string copy(字符串复制)的缩写。
strcpy是一种C语言的标准库函数,strcpy把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*。
参考资料:strcpy-百度百科
可以在不使用string.h头文件的前提下,实现字符串的复制
void my_strcpy(char* dest, char* str)
while (*str != '\0')
*dest = *str
str++
dest++
*dest = *str//这个是将str里的'\0'赋给dest里的'\0'
复制
改进版
#include <stdio.h>
#include <assert.h>
void my_strcpy(char* dest, char* str)
assert(dest != NULL)//断言
assert(str != NULL)
while (*dest++ = *str++)
int main() {
char arr1[] = "###############"
char arr2[] = "bit"
my_strcpy(arr1, arr2)
printf("%s", arr1)
return 0
进阶版
#include <assert.h>
char * my_strcpy(char* dest, const char* str) {
char* ret = dest
assert(dest != NULL)//断言
assert(str != NULL)
//把str中的内容拷贝到dest中,包含字符'\0'
while (*dest++ = *str++)
return ret
int main() {
char arr1[] = "###############"
char arr2[] = "bit"
printf("%s", my_strcpy(arr1, arr2))
return 0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)