strcat、strcpy、memcpy 的使用注意

 1     char *p = "hello";//5 个长度
 2
 3     int len = strlen(p)+1 ;
 4
 5     //char *str = (char *)malloc(sizeof(char)*len);
 6     char str[90] = "nihaoma";
 7     //memset(str, 0, len);
 8     //strcpy(str, p);
 9     strcat(str, p);//str 必须有初始化
10     //memcpy(): 需要为 str 多分配一个空间,然后系统才能自动添加 \0
11     //memcpy(str, p, len);
12     len = strlen(str);
13
14     printf("strlen(str):%d\n", len);
15     printf("%s\n", str);
16
17     //char destination[25];
18     //char *blank = " ", *c = "C++", *Borland = "Borland";
19
20     ////strcpy 自动加 \0  那么后面使用 strcat 也不会影响
21     //strcpy(destination, Borland);
22     //strcat(destination, blank);
23     //strcat(destination, c);
24
25     //printf("%s\n", destination);
26
27
28
29     system("pause");
时间: 2024-10-13 22:48:49

strcat、strcpy、memcpy 的使用注意的相关文章

[VC]strcpy memcpy memset区别与简介

strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中. 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串.       返回指向dest的指针.memcpy 原型:extern void *memcpy(void *dest, void *src, unsigned int count);

strlen,strcat,strcpy,strcmp的实现

自己设计实现strlen,strcat,strcpy,strcmp. int my_strlen(char *a) { int count=0; while(*a) { a++; count++; } return count; } char* my_strcat(char *a,char *b) { char *c; c=a; while(*a) { a++; } while(*b) { *a++=*b++; } return c; } char* my_strcpy(char *c,char

strlen strcat strcpy strcmp 自己实现

strlen strcat strcpy strcmp 自己实现 strlen include <stdio.h> #include <string.h> #include <assert.h> size_t my_strlen(const char* str){ assert(str != NULL); const char *tmp = str; size_t count = 0; while(*tmp++ != '\0'){ count++; } return c

用c语言.模拟实现strcpy,strcat,strcat,memcpy,memmove

1.模拟实现strcpy #include<stdio.h> #include<stdlib.h> #include<string.h> #include<assert.h> char *my_strcpy(char *dst, const char *src) { assert(dst != NULL); assert(src != NULL); char *ret = dst; while ((*dst++ = *src++) != '\0') ; re

模拟实现部分库函数(strcpy,strcmp,strcat,strstr,memcpy,memmove,memset)

//1.strcpy(拷贝) char* my_strcpy(char*dst, const char*src) {  assert(dst);  assert(src);  char* cp = dst;  while (*cp++ = *src++)  {   ;  }  return dst; } //2.strcat(连接) char* my_strcat(char*dst, const char*src) {  assert(dst);  assert(src);  char* cp 

【C语言】str类与men库函数的实现(如:strcpy,strcmp,strstr,strcat,memmove,memcpy)

strcpy 拷贝源字符串到子字符串,包括'\0'. 代码实现: char* strcpy(char* dst,const char* src) {     assert(src);     char* ret = dst;     while (*src)     {         *dst = *src;         src++;         dst++;     }     *dst = '\0';     return ret; } 2.strncpy: strncpy与str

strcpy, memcpy, memset函数

一. strcpy函数 原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 和 #include <stdio.h> 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串. 返回指向dest的指针. 实现代码: char * strcpy(char * strDest,c

strcpy,memcpy,memset函数实现

strcpy 实现,只能拷贝字符串 char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) && (source != NULL)); while((*des++ = *source++)!='\0'); return r; } memcpy 实现,注意目的地址和源地址重合的情况,以及强制类型转换 void *myMemCopy(void *dest,const void *src,siz

strlen sizeof strcat strcpy区别

strlen(p): 能计算出p指向字符串的长度(以当前p的位置开始),不包含终止字符'\0': p可以声明为char* p或者char p[],这两种形式strlen均能正确计算. sizeof(p): sizeof是一个操作符,非函数,其值在编译期确定,因此当p声明为某一类型指针时,sizeof在编译时并不能确定指向内容的大小,故返回的是指针类型本身的大小: 当p声明为某一类型数组时,sizeof在编译时即可确定指向内容的大小,故返回的是数组所占容量: strcat(p1,p2)和strcp

C: strcpy &amp; memcpy &amp; scanf/printf format specifier.. escape characters..

well, strcpy differs from memcpy in that it stops copy at \0 the format specifier is a string.. which can be assigned to a char*.. like.. strcpy(a,"%d"); the escape characters only affect some cases.. in printf's format specifier.. %% //  /t is