中易网

有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。

答案:6  悬赏:60  
解决时间 2021-01-23 05:08
有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
最佳答案
#include
#include

void main ()
{
int i,m,n;
char str[100]={0};
printf("输入n:");
scanf("%d",&n);
getchar();
for(i=0;i str[i]=getchar();
printf("输入m:");
scanf("%d",&m);
printf("%s\n",str+m-1);
}追问该代码简单易懂,可能即将成为最佳答案!
全部回答
用链表
#include
int*p;
p=(char*)malloc(n*sizeof(char));追问可不可以具体点?完整代码最好,我好参考。追答#include
#include
int mian()
{
int*p;
int n;
printf("请输入n的值:\n");
scanf("%d",&n);
p=(char*)malloc((n+1)*sizeof(char));
scanf("%s",p);
}追问我正在补全你的答案,在运行试试。追答刚才没检查,有几个错误,下面是正确的
#include
#include
void mian()
{
char*p;
int n;
printf("请输入n的值:\n");
scanf("%d",&n);
p=(char*)malloc((n+1)*sizeof(char));
scanf("%s",p);
}
#include
#include
char* copy_1(char *a,int m,int n)
{
char temp[100];
strcpy(temp,&a[n-m]);
return temp;
}
main()
{
char b[40],*ch;
int i;
for(i=0;i<10;i++)
scanf("%c",&b[i]);
ch=copy_1(b,5,10);
printf("%s\n",ch);
}
代码如下:
char input[100] = {};
char output[100] = {};
int n, m;
printf("n=");
scanf("%d", &n);
printf("input=");
scanf("%s", input);
printf("m=");
scanf("%d", &m);
int j = 0;
for (int i = m - 1; i < n && i < 100; i++, j++)
{
output[j] = input[i];
}
output[j] = '\0';
printf("output=%s", output);
getchar();
getchar();
input和output的数组大小一定要够大,C里不支持使用变量声明数组大小,也没有字符串,所以这个只能用一个尽可能大的数组来存储你输入的内容,以避免数组越界。追问代码改了一下才能在VC中运行,还有追问字数有限,我减少了代码,运行第二部可以输入>n个字符,我还得考虑一下答案的可行性。
char input[100], output[100];
int n, m;
scanf("%d", &n);
printf("input=");
scanf("%s", input);
scanf("%d", &m);
int j = 0;
for (int i = m - 1; i < n && i < 100; i++, j++)
output[j] = input[i];
output[j] = '\0';
printf("output=%s",output);追答这代码是我刚写的,我也是很久没用了,现在的高级语言都有字符串了,根本不存在这个问题。我是自己试过好使才传上来的,不明白哪里有错误。追问敢于坚持自观点,佩服!请问你是在VC中运行的吗?运行的错误太多,下面未写完。
Compiling...
1.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(6) : error C2059: syntax error : '}'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(7) : error C2059: syntax error : '}'
执行 cl.exe 时出错.
1.exe - 1 error(s), 0 warning(s)追答对啊,新建的VC++程序,虽然我很久没用了,不过程序还是Debug过,看过结果的。我建的是控制台应用程序,只清楚咱们哪里不通。
#include
#include
void ncpy(char *p,char *q,int m)
{
p=p+m-1;
while(*q++=*p++)
{
;
}
}
int main(void)
{
int n,m;
char *p,*q;
scanf("%d",&n);
p=(char *)malloc(sizeof(char)*(n+1));
scanf("%s",p);
scanf("%d",&m);
q=(char *)malloc(sizeof(char)*(n-m+2));
ncpy(p,q,m);
puts(q);
free(p);
free(q);
return 0;
}追问你的答案正确!对于我来说也有点新奇!我正在比较筛选最佳答案,祝你好运!
#include
#include
void copystr(char* d,char* s,int n)
{
strcpy(d,s+n-1);
}
void main ()
{
char st1[100];
char st2[100];
int n,m,i;
printf("输入n:");
scanf("%d",&n);
for(i=0;i {
printf("输入第%d个字串:",i+1);
getchar();
gets(st1);
printf("输入m:");
scanf("%d",&m);
copystr(st2,st1,m);
printf("%s\n",st2);
}
}追问谢谢参与,你的答案正确,我正在比较筛选最佳答案,我也希望能是你!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
食品冷冻的主要方法都有哪些
鼎盛金属地址有知道的么?有点事想过去
孕30周做什么瑜伽可以改善腰疼
开心网里怎么邀请别日呢住进自己的房子
绝地求生大逃杀每个箱子多少金币
上海到杭州余杭高铁站怎么坐车
请问Ito公式中"o^"这个符号在latex中怎么打出
单方精油
别墅家居装修是否需要安装地暖?
艺象标儿童创艺美术地址在什么地方,我要处理
钴铬合金烤瓷牙好吗?
远征物流(批发市场北门远征物流)地址在什么地
m o u n t a i n e能拼出什么单词
天天少儿舞蹈培训中心地址在哪,我要去那里办
手粘了玻璃胶用水洗不掉怎么办
推荐资讯
4399生死狙击女角色裙子底下的裤衩图片
刺激脑垂体分泌荷尔蒙方法
上海金山石化刭上海闸北区的大宁小城怎么走
人工授精适用于哪些人群和范围
lol魄罗佳肴爱人图标怎么得
大家都给对方起什么昵称
在田岛软件里面用什么方法能打出汉字?急急急
咨询:我的侧脸不好看如何是好
想从有线电视主线上私接一根线,怎么弄? 直
丰太阳穴材料什么是最好的?
工作狂的心理学家建议
在vivado中Export Hardware for SDK时无法启
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?