C语言中,用指针实现字符串的拷贝,不能用strcpy,用自定义函数实现该功能 5
#include<stdio.h>
#include<assert.h>/*断言的头文件*/
char*my_strcpy(char*dest,const char*src)
/*传参,把src依次传给dest,指针数组,每一个都是地址*/
{
char*ret=p;/*接收的为地址*/
assert(src!=NULL);
/*,使用指针一定要先用查找函数判断是否为空,防止不小心将空地址传递*/
while(*dest++=*src++)
{
;
}
return p;/*返回的ret为字符串则用char,且为地址*/
}
int main()
{
char arr1[]="Hello world!";
char arr2[20];
char*ret=my_strcpy(arr2,arr1);
printf("%s",ret);/*打印出的为字符串*/
return 0;
}
扩展资料:
用法://以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开)
#include<stdio.h>
int main()
{
int i,j;
scanf("%d%d",&i,&j);
printf("i=%d;j=%d",i,j);
return 0;
}
//以下程序用于输出“百度百科”
#include<stdio.h>
int main()
{
printf("百度百科");
return 0;
}
format
Format参数是包含三种对象类型的一个字符串:
*无格式字符复制到输出流;
*转换规范,每个规范导致在值参数列表中检索1个或更多个项;
*转义序列。
通常意义上format的格式如下:
%[flags][width][.prec][F|N|h|l]type
规定输出数据的格式,具体如下:
注:%g、%G在小数点位数四位或指数大于等于精度时用%e、%E,否则用%f。
参考资料:
#include <iostream>
using namespace std;
void strapy_(char* pBuffer,int count,char* DestSz)
{
if(*pBuffer != NULL)
{
for (int n=0;n<count;n++)
{
DestSz[n] = pBuffer[n];
}
}
}
const int Num = 20;
void main()
{
char buffersz[Num] = "Hello,你好!";
char DesSz[Num] = {0};
strapy_(buffersz,strlen(buffersz),DesSz);
cout<<DesSz<<endl;
system("pause");
}
#include<string.h>
char fun(char *a)
{
char b[80];
int i, len;
len = strlen(a);
for (i = 0; i < len; i++)
{
b[i] = a[i];
}
b[i] = '\0';
printf("复制后的字符串为:");
puts(b);
return 0;
}
int main()
{
char a[80];
printf("输入字符串:");
gets(a);
fun(a);
}
祝你愉快!