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);
}

posted @ 2022-03-18 19:24  W-forever  阅读(56)  评论(0)    收藏  举报