C++题目求解答

设计一个函数copyp,将字符串s前n个字符复制到字符串t中。要求在主函数中输入字符串s,通过调用函数copyp得到字符串t并且输出字符串t#include<iostre... 设计一个函数copyp,将字符串s前n个字符复制到字符串t中。要求在主函数中输入字符串s,通过调用函数copyp得到字符串t并且输出字符串t

#include<iostream.h>
#include<stdio.h>
#define N 100;
void copyp(char s,char t,int n)
{
int i;
for(i=1;i<=n;i++)
{while(s[i]!='\0')
t=s[i];}
}
void main()
{
char s[N];
char t[N];
int n;
gets(s);
cin>>n;
copyp(s,t,n);
puts(t);
cout<<endl;
}

初学,不太懂,求解答。错误在哪里,或者有没有好点的写法
展开
 我来答
心若初見
2015-12-07 · 超过28用户采纳过TA的回答
知道答主
回答量:45
采纳率:100%
帮助的人:31.6万
展开全部
错误多了去了,基本概念都没懂,函数原型就错了,指针也没学;函数原型(声明)void copyp(char *s,char *t,int n),你要传递的是一个数组,记住,是一个数组,而不是一个字符,不是一个!,是一组!
然后我慢慢看代码,第一点,空字符也可以复制('\0'),所以,while条件可以取消,第二,while还有可能越界(就是N的值可能大于数组,这个没有处理),第三,你的t(算了,函数原型都搞错了);
给你写一个,void copyp(char *s,char *t,int n)
{
int i=0;
while((*s++=*t++)!='\0')
if(++i>n);
{
*s='\0';
break;
}
}我写的函数是把t复制到s中,你自己对调一下就是。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式