strcat与strcpy

前几天刚有点认识了strlen和sizeof,今天又有点认识了strcpy和strcat。

在vc2010环境下

1 strcpy

strcpy(p,q),p要么为数组,要么为空指针,要是为空指针操作后内存中存储的形式和数组一样,空处为\0,非空指针(分配了内存)报错。

2 strcat

strcat(p.q),p要么为数组,要么为strcpy后产生的指针,若为指针(申请了内存)非空报错,若空 (申请了内存)不报错但存在部分乱码。

网上对此有各种说法,但为了程序的可维护性和移植性,第一个参数尽量为数组。

时间: 12-18

strcat与strcpy的相关文章

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 多

字符串处理函数(strcat、strcpy等)为什么要返回值

这样做的目的是方便程序中语句内联,比如strlen(strcpy(s,t)). 为了实现链式操作,将目的地址返回 int lengh=strlen(strcpy(s,t)). Strcpy函数可以作为另外一个函数的实参. char * strcpy( char *strDest, const char *strSrc ) { assert( (strDest != NULL) && (strSrc != NULL) ); char *address = strDest; while( (*

strlen的三种实现方法,strcmp,strcat,strcpy

首先我们来看一下大家学习中经常熟悉用到的strlen函数. strlen 1:指针差值返回 int my_strlen(const char *str) {              char *pst = (char *)str;             assert(str);              while(*str)             {                         str++;             }              return  str

C字符串——库函数系列(strlen、strcat、strcpy、strcmp)

一定义: 字符串:字符串是由零个或者多个字符组成的有限串行: 子串:字符串中任意个连续的字符组成的子序列,并规定空串是任意串的子串,字符串本身也是子串之一:“abcdefg”,”abc“就是其子串,但是“ade”不属于子串范围. 子序列:不要求字符连续,但是其顺序与其在主串中相一致:上例中,“abc”与“ade”都属于子序列范围: 二:C风格字符串包括两种: 1)字符串常量---以双引号括起来的字符序列,编译器自动在其末尾添加一个空字符. 2)末尾添加了’0‘的字符数组: char ch1[]=

转:strcat与strcpy与strcmp与strlen

转自:http://blog.chinaunix.net/uid-24194439-id-90782.html strcat 原型:extern char *strcat(char *dest,char *src); 用法:#include <string.h> 功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'. 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串. 返回指向dest的指针. 举例: // str

C语言中字符串常用函数--strcat,strcpy

strcpy 原型声明:extern char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串. 返回指向dest的指针. 函数实现: /**********************   * C语言标准库函数strcpy的一种典型的工业级的最简实

C语言中strcat的实现方法

最近看到一道题目要求, 自己码代码实现strcat的功能, 于是自己实现了一个如下: /* * 12.编写一个函数JOIN,让它实现字符串连接运算功能. */ #include <stdio.h> #include <assert.h> #include <stdlib.h> #include <string.h> // ==============[自己实现的strcat]============== char * join(char * str1, co

字符串操作的实现:strstr、strcat、strcmp和stcpy

几个重点强调一下: (1)注意使用assert: (2)strcat 和 strcpy最后注意赋值'\0': (3)strcpy注意内存覆盖的情况: (4)strcmp中:while(!(ret = *(unsigned char *)s1 - *(unsigned char *)s2) && *s2 != '\0'):???为什么要转换类 型: (5)strstr函数中返回的类型也要为const. #include<stdio.h> #include<assert.h&

C++中字符数组和字符串string

字符数组 C++中字符数组用char str[]可以用来表示一个字符串. (1)   数组的大小和字符串的长度. 数组的大小一定要大于字符串的长度,因为系统会自动补上一个'\0'作为字符串的结束标志.当然对于未初始化的也补'\0'. #include <iostream> #include <string> using namespace std; int main() { char str[11] = "I am happy"; // 系统会自动补上'\0'空