24.字符串打印和拷贝问题
字符串打印
#include<stdio.h>
int main()
{
//1.%s从字符首元素开始打印,直到结束符位置
//2.%s操作的是指针所指向的内容
//3.str是字符首元素的地址,如果想打印str本身的值,%p,%x,%d
//*str代表第零个元素,他是char
//
char str[] = "hello world";
printf("%s\n", str);
printf("str = %p\n", str);
printf("str = %c\n", str);
}
字符串拷贝
#include<string.h>
int main()
{
char buf[100];
char* p = buf;
//1.p指向buf的首元素
//2.strcpy()是给p所指向的内存拷贝内容,字符串拷贝给buf
strcpy(p, "hello world");
printf("p = %s, buf = %s\n", p, buf);
}
int main01()
{
char* p;
//1.不是给p变量拷贝内容,是给p变量所指向的内存拷贝内容,p是野指针,给野指针所指向的内存拷贝内容,导致结果段错误
strcpy(p, "helloworld");
}
自定义拷贝函数
#include<stdio.h>
//void my_strcpy(char dst[], char src[])
void my_strcpy(char* dst, char* src) {
int i;
while (src[i] != '\0') {
*(dst + i) = *(src + i);
}
*(dst + i) = 0;
}
int main()
{
char src[] = "hello mike";
char dst[100];
my_strcpy(dst, src);//自定义拷贝函数
printf("dst = %s\n", dst);
}

浙公网安备 33010602011771号