C++编程:字符串复制

有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串。要求在主函数输入字符串及m值并输出复制结果。 (知识点:控制语句、字符串、指针)

#include <iostream>
#include <cstring>
using namespace std;

int charcompy(char b[],char a[],int l,int r)
{
int i;
for(i=0;i<=r-l;i++)
b[i]=a[l+i-1];
b[i]='\0';
}//把a复制到b里,从第l个字符到第r个字符
int main()
{
char a[3];
char b[5]={'1','2','3','4','5'};
charcompy(a,b,1,3);
cout<<a;
}
给点悬赏不好啊······追问

一个错误一个警告- -
warning C4508: 'main' : function should return a value; 'void' return type assumed
error C4716: 'charcompy' : must return a value

追答

void charcompy(char b[],char a[],int l,int r)
{
int i;
for(i=0;i<=r-l;i++)
b[i]=a[l+i-1];
b[i]='\0';
}
那个main函数加个return 0;就行;你的编译器看来比我的严格得多

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15
strcpy(s1,s2)是值copy函数 将s2的值给s1,s1以前的值将消失,取代的是s2的值 前提是 s1的长度必须大于等于s2的长度 否则 失败
strcat(s1,s2)连接字符串 将s2的值连在s1的 后面
即如果 s1 = “aaa” s2 = ”b“ strcat(s1,s2)
s1 = ”aaab“ s2 = ”b” 前提是s1 的长度大于 s1的字符长度+ s2 的字符长度
第2个回答  2012-06-23
c:
const int maxn= ;
char s2[maxn]
char * work(char * s1,int m)
{
int len=strlen(s1);
for (int i=0;i+m<=len;i++)
s2[i]=s1[i+m];
return s2;
}
c++:
string work(string s,int m)
{
string w="";
for (int i=m;i<s.len();i++)
w+=s[i];
return w;
}
注:
第二个是c++风格的,使用了stl的string
我只写了核心函数,其它的很简单了,自己写吧!
第3个回答  2012-07-02
#include<iostream>
using namespace std;
char u[1000]="";
char v[1000]="";
char* copy(int m){
int n=strlen(u);
for(int i=m-1,j=0;i<=n;i++,j++) v[j]=u[i];
return v;
}
int main(){
int m;
cin.getline(u,1000)
cin>>m;
cout<<copy(m);
system("pause");
return 0;
}
不懂编译通不通过
相似回答