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

Input数字n一行字符串数字mOutput从m开始的子串SampleInput6abcdef3SampleOutputcdef主要是怎样输入一个数来控制字符串个数,我发... Input
数字n
一行字符串数字
m
Output
从m开始的子串
Sample Input
6
abcdef
3
Sample Output
cdef
主要是怎样输入一个数来控制字符串个数,我发现一般的答案都没输入个数!想请教一下C语言高手!
代码完整最好,我好参考和调试检验。
展开
 我来答
匿名用户
推荐于2017-09-02
展开全部
#include <stdio.h>
#include<string.h>

void main ()
{
int i,m,n;
char str[100]={0};
printf("输入n:");
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
str[i]=getchar();
printf("输入m:");
scanf("%d",&m);
printf("%s\n",str+m-1);
}
追问
该代码简单易懂,可能即将成为最佳答案!
听不清啊
高粉答主

2013-12-25 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>

int n,m;

char str[100],string[100];

void a(char str[])

{

int t=0,i;

for(i=m-1;i<=n;)                /*改写了,更为简洁*/

  string[t++]=str[i++];

}

int main()

{

gets(str);

n=strlen(str);            /*用此系统函数来求取str的串长度更为方便、可靠*/

scanf("%d",&m);

a(str);

puts(string);

return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
adoqq_bd
2012-01-04 · TA获得超过7050个赞
知道大有可为答主
回答量:1818
采纳率:63%
帮助的人:1590万
展开全部
#include <stdio.h>
#include<string.h>
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<n;i++)
{
printf("输入第%d个字串:",i+1);
getchar();
gets(st1);
printf("输入m:");
scanf("%d",&m);
copystr(st2,st1,m);
printf("%s\n",st2);
}
}
追问
谢谢参与,你的答案正确,我正在比较筛选最佳答案,我也希望能是你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine1991
科技发烧友

2012-01-04 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
#include <stdio.h>
#include <stdlib.h>

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;
}
追问
你的答案正确!对于我来说也有点新奇!我正在比较筛选最佳答案,祝你好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzh3452
2012-01-04 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:850万
展开全部
代码如下:
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);
追答
这代码是我刚写的,我也是很久没用了,现在的高级语言都有字符串了,根本不存在这个问题。我是自己试过好使才传上来的,不明白哪里有错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式