| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 699 人关注过本帖
标题:请大家帮帮忙看看这里面有什么问题
只看楼主 加入收藏
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:17 
请大家帮帮忙看看这里面有什么问题
#include<string.h>
void cutstr (p1,p2,m,n)
char *p1,*p2;int m,n;
从书上扒下来的题是从一个字符串中截取从第m个到第n个一段字符串单独表示其中少了几个说明用的prinf语句应该不影响结果不知怎么运行不了很晕人
还是为啥str1从cutstr函数中出来没有变化啊指针不是对应地址的吗 不懂求解
#include<string.h>
void cutstr (p1,p2,m,n)
char *p1,*p2;int m,n;
{int i;
for (i=0;i<m-1;i++,p1++);
for (i=0,i<n;i++)
{*p2=*p1;
p2++;
p1++;}
*p2='\0';}

main()
{char *str1="12345678912345678900123456789",str2[30];
int m,n;
scanf("%d",&m);
scanf("%d",&n);
cutstr(str1,str2,m,n);
printf("原来的字符串:%s\n",str1);
printf("截取后的字符串:%s\n",str2)}

[ 本帖最后由 黄昏乐章 于 2011-6-11 18:09 编辑 ]
搜索更多相关主题的帖子: 字符串 
2011-06-11 17:55
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
楼主太粗心了,重新写一个吧!
2011-06-11 18:01
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
收藏
得分:0 
到底那有问题啊,我对着书也没看出来……
2011-06-11 18:08
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:5 
程序代码:
void cutstr (p1,p2,m,n)
char *p1,*p2;int m,n;          // 重复定义
{int i;                        // { 的位置搞错了

for (i=0,i<n;i++)              // 这明显是要从 m 开始截取 n 个字符,而不是截取 m 到 n 的字符


强烈要求楼主贴出书名,以后大家都不要再买这种害人书了
2011-06-11 18:09
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
收藏
得分:0 
哦 那个第一个for语句是是把指针调到了第m然后在用第二个跳到第n
2011-06-11 18:14
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 5楼 黄昏乐章
第二个不是到 n,而是到 m + n

求书名 + 出版社
2011-06-11 18:15
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
收藏
得分:0 
至于重复定义的事第二个定义一开始我没看见结果就出了个m n 没有定义的警告后来一看果然没写 m n应该是局部变量吧在两个函数里都有应该不影响
2011-06-11 18:20
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
这个~它跟你定义的这个函数的参数是重名的
2011-06-11 18:23
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
我靠,突然发现你的函数形参表居然没有在变量名前面加上类型
void cutstr (p1,p2,m,n)
void cutstr (char * p1 ...
2011-06-11 18:25
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
程序代码:
void cut(char *to,char *from,int m,int n) {
        int i=0;
        while(*from) {
                if(i==(m-1)) {
                        while(*from) {
                                *to++=*from++;
                                i++;
                                if(i==n) break;
                        }
                }
                i++;
                from++;
        }
        *to='\0';
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-11 18:25
快速回复:请大家帮帮忙看看这里面有什么问题
数据加载中...
 
   



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

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