| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 391 人关注过本帖
标题:高手指点一下这个C程序为啥得不到想要的结果!!!谢谢……
只看楼主 加入收藏
莫一阳
Rank: 1
等 级:新手上路
帖 子:38
专家分:6
注 册:2011-4-27
结帖率:78.57%
收藏
已结贴  问题点数:18 回复次数:6 
高手指点一下这个C程序为啥得不到想要的结果!!!谢谢……
/*有一个字符串,包含n个字符。编写一个函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。*/
#include<stdio.h>
#include<string.h>
#define N 20
void copystr(char *,char *,int);
void main()
{
    int m;
    char str1[N];
    char str2[N];
    printf("Please input str1:\n");
    gets(str1);
    printf("Which charter that begin to copy?");
    scanf("&d",&m);
    if(strlen(str1)<m)
   
        printf("input error!!!\n");
        //printf("Please input again:");
        //scanf("%d",&m);
   
    else
    {
        copystr(str1,str2,m);
        printf("the result is:\n%s\n",str2);
    }
}

void copystr(char *p1,char *p2,int m)
{
    int n;
    n=0;
    while(n<m-1)
    {
        n++;
        p1++;
    }
    while(*p1!='\0')
    {
        *p2=*p1;
        p1++;
        p2++;
    }
    *p2='\0';
}


编译没错,结果错误!
搜索更多相关主题的帖子: 字符串 
2011-06-07 21:03
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:4 
程序代码:
#include<stdio.h>
#include<string.h>
#define N 20
void copystr(char *,char *,int);
void main()
{
    int m;
    char str1[N];
    char str2[N];
    printf("Please input str1:\n");
    gets(str1);
    printf("Which charter that begin to copy?");
    scanf("%d",&m);
    if(strlen(str1) < m)
   
        printf("input error!!!\n");
        //printf("Please input again:");
        //scanf("%d",&m);
   
    else
    {
        copystr(str1,str2,m);
        printf("the result is:\n%s\n",str2);
    }
}

void copystr(char *p1,char *p2,int m)
{
    int n = 0;
    char *p = p1+m-1;
    while(*p)
    {
        p2[n++] = *p++;
    }
    p2[n]='\0';
}

                                         
===========深入<----------------->浅出============
2011-06-07 21:19
blackbansy
Rank: 2
等 级:论坛游民
帖 子:18
专家分:14
注 册:2011-6-6
收藏
得分:4 
输入语句不对,应为scanf("%d",&m);

抽空开了个店铺,欢迎大家前往参观。店名: 衣省无忧
2011-06-07 21:33
blackbansy
Rank: 2
等 级:论坛游民
帖 子:18
专家分:14
注 册:2011-6-6
收藏
得分:0 
输入语句不对,应为scanf("%d",&m);

抽空开了个店铺,欢迎大家前往参观。店名: 衣省无忧
2011-06-07 21:33
Mr黑绵羊
Rank: 2
等 级:论坛游民
帖 子:24
专家分:30
注 册:2010-12-7
收藏
得分:4 
4楼。。。。改了半天才发现,这样竟然不报错。。。。
2011-06-07 21:35
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:4 
程序代码:
strcpy(str2, &str1[m]);    // 直接这样也可以
strcpy(str2, str1 + m);    // 其实跟上面一样



[ 本帖最后由 voidx 于 2011-6-7 21:38 编辑 ]
2011-06-07 21:36
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:4 
回复 2楼 laoyang103
简洁!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-07 21:42
快速回复:高手指点一下这个C程序为啥得不到想要的结果!!!谢谢……
数据加载中...
 
   



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

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