02 11 字符串拷贝
有数量,部分初始化 默认0
有数量,没初始化 n个烫烫烫
没数量,部分初始化 ?个烫烫烫
没数量,没初始化 不允许使用
01 字符数组(长度一定,正常;长度不定,乱码)
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
void test1()
{
char a[] = {'t','w','i','n','k','l','e'};
printf("%d\n", a[7]);
printf("%s\n", a);
char a2[100] = { 't','w','i','n','k','l','e' };
printf("%d\n", a2[7]);
printf("%s\n", a2);
}
void main() {
test1();
system("pause");
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/bcd8658b79e64caa52a0e9a52c95e7df.png)
02 strcpy,赋值,字符串常量区 -> 栈区
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
void mystrcpy1(char* des, const char* src)
{
int len = strlen(src);
for (int i = 0; i<len; ++i)
{
des[i] = src[i];
}
des[len] = 0;
}
void test2()
{
char* src = "刘穆之";
char des[100];
mystrcpy1(des,src);
printf("%s\n", des);
}
void main() {
test2();
system("pause");
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5491ccda086d0ae76d4da9b11aaf0eea.png)
02 strcpy,指针,字符串常量区 -> 栈区
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0d6084befed5fe56725ab3bfd1791c97.png)
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
void mystrcpy2(char* des, const char* src)
{
while (*src != 0)
{
*des = *src;
++des;
++src;
}
*des = 0;
}
void test3()
{
char* src = "刘穆之";
char des[100];
mystrcpy2(des, src);
printf("%s\n", des);
}
void mystrcpy3(char* des, const char* src)
{
while (*des++ = *src++);
}
void test4()
{
char* src = "刘穆之";
char des[100];
mystrcpy3(des, src);
printf("%s\n", des);
}
void main() {
test3();
system("pause");
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/47e163059b8bdf379bb172fd8f4321ce.png)
02 strcpy,指针,极简洁,字符串常量区 -> 栈区
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f2048dc76fe924ed1dcdc4c5cc5176c5.png)
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
void mystrcpy3(char* des, const char* src)
{
while (*des++ = *src++);
}
void test4()
{
char* src = "刘穆之";
char des[100];
mystrcpy3(des, src);
printf("%s\n", des);
}
void main() {
test4();
system("pause");
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c2a8fb2670cb32764b310946a5c4e191.png)