C++编程:字符串复制
有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串。要求在主函数输入字符串及m值并输出复制结果。(知识点:控制语句、字符串、指...
有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串。要求在主函数输入字符串及m值并输出复制结果。 (知识点:控制语句、字符串、指针)
展开
4个回答
展开全部
#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;
}
给点悬赏不好啊······
#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;就行;你的编译器看来比我的严格得多
展开全部
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 的字符长度
strcat(s1,s2)连接字符串 将s2的值连在s1的 后面
即如果 s1 = “aaa” s2 = ”b“ strcat(s1,s2)
s1 = ”aaab“ s2 = ”b” 前提是s1 的长度大于 s1的字符长度+ s2 的字符长度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
我只写了核心函数,其它的很简单了,自己写吧!
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
我只写了核心函数,其它的很简单了,自己写吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
不懂编译通不通过
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;
}
不懂编译通不通过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询