| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2748 人关注过本帖
标题:将含有n个字符串的第m到m+k个字符复制到另一个字符串中。求大神指点,我哪里 ...
只看楼主 加入收藏
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:20 
将含有n个字符串的第m到m+k个字符复制到另一个字符串中。求大神指点,我哪里写错了
#include <stdio.h>
#include <string.h>
int main()
{
    int m, n, k, i, j;
    scanf("%d%d%d", &n, &m, &k);
    char *a[n], *b[n], *c[n];
    for(i=0;i<n;i++)
      gets(a[i]);
    for(i=m-1,j=0;j<n-m&&i<n;i++,j++)
      b[j]=a[i];
    strncpy(*c, *b, k);
    for(i=0;i<k;i++)
      puts(c[i]);
    return 0;
}
搜索更多相关主题的帖子: include 字符串 
2016-11-27 17:15
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:5 
#include <stdio.h>
#include <string.h>
main()
{
    char *a="ABDEFGHIJK";
    char b[10]={0};
    int m=3, k=5;
    strncpy(b, a+m, k);
    printf("%s", b);
}
2016-11-27 17:39
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
for(i=0;i<n;i++)
      gets(a[i]);//gets(a);就可以了。或者a[i]=getchar();


还有 scanf("%d%d%d", &n, &m, &k);
    char *a[n], *b[n], *c[n];

这样把声明写到scanf后面不规范的,有些编译器过不了~

前面指针概念还没弄懂,后面就没戏了(不用看了~)

我干脆就地帮你搞个出来吧~

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
    char a[]="1234567890";
    char b[100]="";
    int n,m;
    scanf("%d%d",&n,&m);
    if (n>m||m>strlen(a)||n<0||m<0)
    {
        printf("Input error!\n");
        exit(0);
    }
    strncpy(b,a+n,m-n);
    puts(b);
    return 0;
}


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-27 17:51
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
收藏
得分:0 
回复 3楼 九转星河
嘿嘿,蟹蟹,其实我也才学这个,是有点混乱。
再帮我看个东西呗
for(i=0;i<10; i++,p++)
sum+= *p;有啥问题啊?
2016-11-27 18:31
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用QwertySun在2016-11-27 18:31:33的发言:

嘿嘿,蟹蟹,其实我也才学这个,是有点混乱。
再帮我看个东西呗
for(i=0;i<10; i++,p++)
sum+= *p;有啥问题啊?
没有上下文  鬼知道有啥问题

DO IT YOURSELF !
2016-11-27 18:34
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
收藏
得分:0 
回复 2楼 吹水佬
蟹蟹
2016-11-27 18:34
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
收藏
得分:0 
回复 5楼 wp231957
#include <stdio.h>
int main()
{
    int a[10]={7,3,1,5,2,9,12,8,11,4};
    int *p=a,i;
    int sum;
    sum=0;
    for(i=0;i<10; i++,p++)
        printf("%d  ",*p);
    for(i=0;i<10; i++,p++)
        sum+= *p;
    printf("\nsum is %d\n", sum);
    return 0;
}
我觉得是sum+= *p;这有问题
2016-11-27 18:35
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
收藏
得分:0 
回复 5楼 wp231957
#include <stdio.h>
int main()
{
    int a[10]={7,3,1,5,2,9,12,8,11,4};
    int *p=a,i;
    int sum;
    sum=0;
    for(i=0;i<10; i++,p++)
        printf("%d  ",*p);
    for(i=0;i<10; i++,p++)
        sum+= *p;
    printf("\nsum is %d\n", sum);
    return 0;
}
我觉得是sum+= *p;这有问题
2016-11-27 18:35
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
收藏
得分:0 
回复 2楼 吹水佬
strncpy(b, a+m, k);a+m是什么意思啊?为什么要这样写?求讲解.
2016-11-27 18:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
回复 8楼 QwertySun
sum 未赋初值
p越界  第一个循环 p 已经走到末尾了

DO IT YOURSELF !
2016-11-27 18:42
快速回复:将含有n个字符串的第m到m+k个字符复制到另一个字符串中。求大神指点, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020070 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved