#includestdio.h
创新互联主营永顺网站建设的网络公司,主营网站建设方案,App定制开发,永顺h5微信小程序搭建,永顺网站营销推广欢迎永顺等地区企业咨询
int main()
{
void copy(char *from,char *to);
char a[81]; //源串数组
char b[81]; //目标串数组,此数组要保证不小于源串,不然,数据会产生越界问题
printf("input a string:" );
gets(a); //输入一个字符串数据,如:hello,world
copy(a,b);
printf("%s\n",b);
return 0;
}
void copy(char *from,char *to)
{
for(;*from!='\0';from++,to++)
{
*to=*from;
}
*to='\0';
}
#include stdio.h
#include string.h
int copystring(char *str2, char *str1);
int main()
{
char str1[30] = "hello,string copied!\n";
char str2[30];
printf("str2[30]=%d\n", copystring(str1, str2)); // 你的copystring函数需要的参数是两个字符型指针,而数组名本身就可以作指针来使用,str1[30]指的是字符数组str1中第31(从0开始,这里实际上越界了)个元素的地址
return 0;
}
int copystring(char *str2, char *str1)
{
printf("str2 is %s\n", str2);
strcpy(str1, str2); // strcpy函数第一个参数是复制后存放的数组,第二个才是要复制的对象
return *str2; // 我不太理解你这个函数想返回什么,你现在做的是将str2[0]的值以整型返回(h的ASCII码对应104)
}
如果还有什么问题可以追问
现写的 差不多 看好给分
字符串复制
char* string_copy(char* pdest, char* psource)
{
if(psource == NULL)
{
pdest = NULL;
return pdest;
}
while ((*pdest++=*psource++)!='\0');
return pdest;
}
字符串连接
char *string_strcat(char* s1, char* s2)
{
char *p = s1;
while(*p++);
--p;
while(*p++ = *s2++)
return s1;
}
字符串比较长度
int string_compare(char* s1, char* s2)
{
char *p1 = s1;
char *p2 = s2;
int i =0, j=0;
while(*p1++)
++i;
while(*p2++)
++j;
if (i j) return 1;
if (i == j) return 0;
if (i j) return -1;
}