字符串:用”包含,一定以‘\0’结尾,只有以‘\0’结尾的字符数组才能叫字符串
void Mystrcpy3(char *des,const char *src)
{
while(*src != '\0')
{
*des = *src;
//*src = '\0';
des++;
src++;
}
*des = '\0';
}
assert : 断语言,断定表达式一定为真,如果为假,程序崩溃
必须引进函数名 #include<assert.h>
int main()
{
char arr;
char brr[5] = { 'a', 'b ', 'c', 'd', 'e' };//不是字符串,没有\0
//char crr[5] = { "abcd" };
char drr[5] = "abcd";
//char err[10] = { 'a', 'b', 'c', 'd', 'e' };//字符串,后边默认有5个'\0'
char err[10] = { 'a', 'b', '\0', 'c', 'e' };//输出ab
char crr[] = { 'a', 'b', 'c' };//不是字符串
}
字符串拷贝
1、
1、
void Mystrcpy(char *des,char *src)//des为目标字符串,src为源字符串
{
int i;
for(i=0;src[i]!='\0';i++)
{
des[i] = src[i];
}
des[i] = '\0';
}
2、
void Mystrcpy1(char*des, char*src)//arr[i]=*(arr+i)
{
int i;
for (i = 0; *(src + i) != '\0'; i++)
{
*(des + i) = *(src + i);
}
*(des + i) = '\0';
}
3、void Mystrcpy3(char *des,const char *src)
{
while(*src != '\0')
{
*des = *src;
//*src = '\0';
des++;
src++;
}
*des = '\0';
}
4、
void Mystrcpy3(char*des,char *src)
{
while(*src != '\0')
{
*des++ = *src++;
}
*des = '\0';
}
5、
void Mystrcpy4(char *des,char *src)
{
while(*des++ = *src++) ;
}
assert : 断语言,断定表达式一定为真,如果为假,程序崩溃
必须引进函数名 #include<assert.h>
#include<stdio.h>
#include<assert.h>
char * Mystrcpy(char *des, const char *src)
{
assert(des != NULL && src != NULL);//断言
if (des == NULL || src == NULL)
{
return;
}
char *p = des;
while (*des++ = *src++);
return p;
}