头文件:#include<string.h>
函数的声明:char* strcpy(char *dest, const char *src);
函数的说明:拷贝src指向的字符串到dest指针指向的内存中,\0也会拷贝。
函数的返回值:目的内存的地址。
注意:在使用此函数的时候,必须保证dest指向的内存空间足够大,否则会出现内存污染。
函数的声明: char* strncpy(char* dest,const char* src,size_t n);
函数的说明:将src指向的字符串前n个字节,拷贝到dest指向的内存中
返回值:目的内存的首地址
注意:strncpy不拷贝\0 , 如果n大于src指向的字符串中的字符个数,则在dest后面填充n-strlen(src)个\0。
举例1:
- #pragma warning(disable:4996)
- #define _CRT_SECURE_NO_WARNINGS
- #include<stdio.h>
- #include <string.h>
- int main()
- {
- char buf[100] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
- strncpy(buf, "helloworld", 5); // helloaaaaaaaaaaaaaaaaaaaaaaaa
- printf("%s\n", buf);
- return 0;
- }
结果为helloaaaaaaaaaaaaaaaaaaaaaaaa
举例2:
- #pragma warning(disable:4996)
- #define _CRT_SECURE_NO_WARNINGS
- #include<stdio.h>
- #include <string.h>
- int main()
- {
- int len, i;
- char buf[100] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
- len = strlen(buf);
- strncpy(buf, "helloworld", 15);
- for (i = 0; i < len; i++)
- {
- printf("%c", buf[i]);
- }
- printf("\n"); // helloworldaaaaaaaaaaaaaaaaaaaaaaa
- return 0;
- }
例2验证了:如果n大于src指向的字符串中的字符个数,则在dest后面填充n-strlen(src)个\0。
|