作者discipile (孤独的风)
看板C_and_CPP
标题[问题] strcpy的练习程式
时间Sun Nov 1 23:04:11 2009
遇到的问题: (题意请描述清楚)
目前我在练习strcpy的使用,但是compile就不过了,错误在下面会一一列出
希望得到的正确结果:
将str2复制到str1
程式跑出来的错误结果:
D:\Dev-Cpp\mywork\strcpy.cpp In function `int main()':
9 D:\Dev-Cpp\mywork\strcpy.cpp invalid conversion from `char' to `char*'
9 D:\Dev-Cpp\mywork\strcpy.cpp initializing argument 1 of `char
strcpy(char*, char*)'
9 D:\Dev-Cpp\mywork\strcpy.cpp invalid conversion from `char' to `char*'
9 D:\Dev-Cpp\mywork\strcpy.cpp initializing argument 2 of `char
strcpy(char*, char*)'
9 D:\Dev-Cpp\mywork\strcpy.cpp At global scope:
18 D:\Dev-Cpp\mywork\strcpy.cpp ISO C++ forbids declaration of `strcpy' with
no type
D:\Dev-Cpp\mywork\strcpy.cpp In function `int strcpy(char*, char*)':
18 D:\Dev-Cpp\mywork\strcpy.cpp new declaration `int strcpy(char*, char*)'
3 D:\Dev-Cpp\mywork\strcpy.cpp ambiguates old declaration `char strcpy(char*,
char*)'
开发平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
有问题的code: (请善用置底文标色功能)
#include<stdio.h>
#include<stdlib.h>
char strcpy(char str1[],char str2[]);
int main ()
{
int i;
char str1[5]={1,2,3,4,5};
char str2[5]={0,0,0,0,0};
strcpy(str1[5],str2[5]);
for(i=0;i<=5;i++)
printf("%d",str1[i]);
for(i=0;i<=5;i++)
printf("%d",str2[i]);
system("pause");
}
strcpy(char str1[],char str2[])
{
int i=0;
for(i=0;str2[i]!='\0';i++)
str1[i]=str2[i];
}
补充说明:
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.66.168.12
1F:推 ledia:strcpy 本身有一点小问题, 不过最大的问题在於 11/01 23:06
2F:→ ledia:strcpy 是给字串 (型态是 char *), 但你给的是字元, 而且还 11/01 23:07
3F:→ ledia:超过阵列的界限..., 可能要弄清楚阵列的概念 11/01 23:07
4F:→ discipile:有超过?不是5个复制到另外5个去? 11/01 23:13
5F:→ discipile:对喔!是字串,感谢^^ 11/01 23:14
6F:→ netsphere:可能还要弄清楚指标的概念 11/01 23:14
7F:→ discipile:我感到这些观念薄弱了,近期将书翻一翻 11/01 23:22