看看我的程序:c语言:数组:不用strcpy函数,实现字符串的复制

刚学C语言,非常菜,请各位帮我斧正。谢谢啊。

#include<stdio.h>

void strcopy (char *wordaPre, char *wordbPre);

int mian()
{
char worda[100];
char *wordaPre;
char wordb[100];
char *wordbPre;

printf("Please input some chars:");
gets(worda);

wordaPre = worda;
wordbPre = wordb;

strcopy (wordaPre, wordbPre);

puts(wordb);

return 0;
}

void strcopy (char *wordaPre, char *wordbPre)
{
while (*wordaPre != '\0'){
*wordbPre = *wordaPre;
wordaPre++;
wordbPre++;
}
}

编译器显示:
新建 ff文本文档.c
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/新建 ff文本文档.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
经过一楼的指正,我已经把mian改为了main了。可是

第1个回答  推荐于2016-04-22
#include<stdio.h>

void strcopy (char *wordaPre, char *wordbPre);

int main(void)
{
char worda[100];
char wordb[100];

printf("Please input some chars: ");
gets(worda);

strcopy (worda, wordb);
puts(wordb);

return 0;
}

void strcopy (char *wordaPre, char *wordbPre)
{
while (*wordaPre != '\0')
*wordbPre++ = *wordaPre++;
*wordbPre='\0'; /* 置结束标志 */
}

一定要记得置结束标志。。本回答被提问者采纳
第2个回答  2009-11-29
这是链接错误, 不是编译错误, 你的IDE可能设置不对, 看看 写个helloworld能不能编译

你的程序还有个问题, 一般字符串最后要加\0 , 这是规范, 如果没有\0,很多库函数不能正常工作的
第3个回答  2009-11-29
while (*wordaPre != '\0'){
这样做你复制给wordbPre的时候把wordaPre的结束符'\0'丢掉了

可以改成这样
void strcopy (char *wordaPre, char *wordbPre) {
while (*wordbPre++ = *wordaPre++);
}
不过最好是改成有返回值的
第4个回答  2009-11-30
子函数有问题啊! *wordbPre = *wordaPre不是复制了,另外也不需计数!
看完整版的:
#include <stdio.h>

void copyString( char *nPtr, char *mPtr );

int main()
{
char string1[ 10000 ];
char string2[ 10000 ];

printf( "Please enter string1:" );
gets ( string1 );

printf( "Please enter string2:" );
gets ( string2 );

printf( "\nthe two strings are %s and %s.\n", string1, string2 );

/* pass address of strings to copyString */
copyString( &string1[ 10000 ], &string2[ 10000 ] );

printf( "\nthe copyed two strings are %s and %s.\n", string1, string2 );

return 0;
}

void copyString( char *nPtr, char *mPtr )
{
*nPtr = *nPtr; /* copy *nPtr */
*mPtr = *mPtr; /* copy *mPtr */
}
第5个回答  2019-01-14
#include<string.h>
#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]);
}
/*以上程序应该可以,不过我没有编译*/

C语言中,用指针实现字符串的拷贝,不能用strcpy,用自定义函数实现该功能...
char*my_strcpy(char*dest,const char*src)\/*传参,把src依次传给dest,指针数组,每一个都是地址*\/ { char*ret=p;\/*接收的为地址*\/ assert(src!=NULL);\/*,使用指针一定要先用查找函数判断是否为空,防止不小心将空地址传递*\/ while(*dest++=*src++){ ;} return p;\/*返回的ret为字符...

编写一个程序,不用Strcpy函数,怎样将字符数组S2的全部字符复制到字符...
4、不用Strcpy函数,将字符数组S2的全部字符复制到字符数组S1中for循环将S2中的字符一个一个的读出来,再用for循环一个一个的写入数组S1,数组就是用来循环的。5、在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。6、在C语言...

C语言中如何编写一个字符串复制函数,并在主函数中调用它。
具体实现方法可以参考如下程序:include<stdio.h>void str_copy(char *str1, char *str2) \/\/ 字符串复制函数{ while(*str1++ = *str2++); \/\/ 将字符串str2中的每个字符逐个复制到str1中,直到遇到字符串结束字符'\\0'}void main(){ char s1[] = "abcd"; char s2[5]; ...

C语言,不使用strcpy函数将一个字符串中的前N个字符复制到一个字符数组...
答案:⑦B。⑧A。

编写一个函数实现两个字符串的连接(不使用库函数strcat).这个用C语...
(char s1[],char s2[]){ int i,j;for (i=0;s1[i] !=’\\0’; i++); \/*求出的i为pA字符的总长度,包括结束标记位*\/ for (j=0;s2[j] !=’\\0’; j++)s1[i++]=s2[j]; \/*将pB字符串连在pA字符串的后面*\/ s1[i]='\\0’; \/*在字符串最后加上结束标记符*\/ } ...

...字符复制到一个字符数组中去 不许使用strcpy函数
include <stdio.h>void copy_str( char *s, char *t, int n){int i;for( i=0;i<n;i++ )*t++=*s++ ;*t='\\0' ;}int main(){char a[20]="hello world" , b[20] ;copy_str( a, b, 5 );printf("b=%s\\n", b );return 0;} ...

C库<string.h>copy函数的实现
这四种函数分别满足不同需求,实现字符串或内存块的复制。具体如下:1. `strcpy`:复制字符串。其原型为`char * strcpy(char * destination, const char * source)`,将`src`指向的字符串复制到`dest`指向的数组中,包括结束符`'\\0'`。复制时需确保`dest`数组至少比`src`长一个字符,并且`dest...

...中的全部字符复制到字符数组str1中。不使用strcpy。
c;scanf("%c", &c);\/\/这句是为了防止控制台退出return 0;} 解决方法 1、定义一个带两个参数的复制函数;2、在函数内循环读取待复制字符串的一个字符,并放入到复制到字符串里;3、判断当前放入的字符是否是\\0如果是就结束循环;4、 将待复制字符串指针加1,将复制到的字符串指针加1 ...

strcpyC语言标准库函数
`strcpy`函数在完成复制后,会返回指向`dest`的指针。这个返回值可以用于后续的字符串操作或者输出。在某些情况下,这可能非常有用,因为它允许程序员在复制字符串后,立即操作或查看复制后的字符串。总之,`strcpy`函数是C语言中用于字符串复制的便捷工具。通过合理利用这一功能,程序员可以更高效地处理和...

C语言字符串复制函数strcpy使用问题
include <stdio.h>#include <stdlib.h>#include <string.h>int main (void){char a[20],b[10];int i,j;scanf("%s%s",a,b); \/\/1strcpy(a,b);printf("%s\\n",a);system("pause");return 0;}还有,楼主想要的是不是字符串连接啊 还是输出字符串b 这个程序的效果和scanf("%*s...

相似回答