有一个字符串,包含n个字符,写一函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串,。大
答案:6 悬赏:80
解决时间 2021-02-10 03:33
- 提问者网友:宿醉何为情
- 2021-02-09 09:11
有一个字符串,包含n个字符,写一函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串,。大
最佳答案
- 二级知识专家网友:丢不掉的轻狂
- 2021-02-09 10:16
个人猜想你想实现的功能是将a[]字符串中从m到n的字符都替换为b中的字符吧
1
2
3
4
5
6
7
for(i=m;(i<n) && (i < 80); i++) //输入的n有可能大于80,不加限制会内存越dao界
{
if(i >= 0) //输入的m有可能是负数,不加限制会内存越界
{
*(a+i) = *(b + i%3); //b只有3个字符,因此这里需要取余运算防止越界
}
}
1
2
3
4
5
6
7
for(i=m;(i<n) && (i < 80); i++) //输入的n有可能大于80,不加限制会内存越dao界
{
if(i >= 0) //输入的m有可能是负数,不加限制会内存越界
{
*(a+i) = *(b + i%3); //b只有3个字符,因此这里需要取余运算防止越界
}
}
全部回答
- 1楼网友:走,耍流氓去
- 2021-02-09 14:22
一、char b[80] ; //要与a相同长度
二、
int j=0;
for( i=m-1;i<n;i++ )
b[j++]=a[i] ;
b[j]='\0';
printf("%s", b );
- 2楼网友:荒唐后生
- 2021-02-09 13:32
方法有很多种,我就说用C语言实现的两种方法,测试能用!
int m=3;
char src[]="0123456789";
char dst[10]={0};
strcpy(dst,src);
//1
memcpy(dst,src+m,strlen(src)-m);
printf"%s\n",dst);
//2
for (int i=m;i<strlen(src);i++)
{
dst[i-m]=src[i];
}
printf("%s\n",dst);
突然发现你说用指针写,你应该知道数组名称就是指针吧
- 3楼网友:闲懒诗人
- 2021-02-09 13:14
b[] 用 b[80];
n 用 strlen() 算出来,不能输入。
假定 m 从 1起算。
复制时要含字符串结束符 ,便可用 %s 格式 输出。
#include<stdio.h>
int main()
{
char a[80];
char b[80]="abc";
int n,m,i;
gets(a);
n=strlen(a);
printf("input m, m <= %d\n",n);
scanf("%d",&m);
for(i=m-1;i<=n;i++) *(b+i-m+1)=*(a+i);
printf("%s\n",b);
return 0;
}
- 4楼网友:白日梦制造商
- 2021-02-09 11:45
#include using namespace std; void main() { int n; char *a,*b; a=(char*)malloc(n*sizeof(char)); b=(char*)malloc(n*sizeof(char)); for(int i=0;i>a[i]; for(i=0;i
- 5楼网友:废途浑身病态
- 2021-02-09 11:01
应该是*(a+i)=*b++;
在循环条件里还要加上当b中内容复制完后也应该停止循环!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯