c语言:数组:不用strcpy函数,实现字符串的复制。
代码如下:
#include<string.h>
#include<stdio.h>
main()
{
char s1[100],s2[100];
int i;
gets(s1);
for(i=0;s1[i]!='\0';i++)
s2[i]=s1[i];
s2[i]='\0';
for(i=0;s2[i]!='\0';i++)
printf("%c",s2[i]);
}
总觉得有点不符合题意似的,谁有新的见解,多多发表。。。 展开
#include<stdio.h>
void Copy_string(char* str1, char* str2); //函数声明
int main()
{
char str1[20];
char str2[20];
puts("请输入字符串str1:");
gets(str1); //获取从键盘输入的字符串
Copy_string(str1, str2);
printf("字符串str2:%s\n",str2 );
return 0;
}
void Copy_string(char* str1, char* str2) //自定义字符串连接函数
{
int i = 0;
while (str1[i] != 0)
{
str2[i] = str1[i];
i++;
}
str2[i] = '\0'; //添加字符串结束符
}
运行结果:
扩展资料
C字符串库函数,实现字符串复制函数strcpy
char *strcpy(char *strDest,const char *strSrc)//源字符串参数用const修饰,防止修改源字符串
{
assert(strDest!==NULL&&strSrc!== NULL);//断言
char *ad=strDest;//返回目标地址
while((*strDest++=*strSrc++)!='\0')//'\0'
{
NULL;
}
return ad;
}
#include<stdio.h>
main()
{
char s1[100],s2[100];
int i,str;
str=strlen(s1);/*求字符串长度*/
for(i=0;i<str;i++)
s2[i]=s1[i];
for(i=0;i<str;i++)
printf("%c",s2[i]);
}
/*以上程序应该可以,不过我没有编译*/
不过用gets()函数,遇到空格就停止接收字符了,在输入的时候要注意...请指正。
{
while (*sourse)
{
*des++ = *sourse++;
}
*des = '\0';
}
一般人我不告诉他……