| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 740 人关注过本帖
标题:指针与字符数组
只看楼主 加入收藏
血色龙
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-4-23
收藏
 问题点数:0 回复次数:8 
指针与字符数组
//将a[100]中的第m到n个字符存入b[100]中,输出
#include "stdio.h"
#include "string.h"
str(char *s1,char *s2,int m,int n)
{char *p=s1,*j=s1;
    p=s1+m-1;
    j=s1+n;
    for(;*p!=*j;p++,s2++)//这里不知道怎么写才对啊,感觉是没有错的,但是输出的结果却刚好是相反的!
    {s2=p;
    }
    
    printf("%s",s2);
}
void main()
{char a[100],b[100];
 int c,d;
     gets(a);
     scanf("%d,%d",&c,&d);
     str(a,b,c,d);
   
}
请高手指点,谢谢
搜索更多相关主题的帖子: 指针 字符 
2008-10-13 15:13
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
*s2=*p;

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-10-13 15:27
血色龙
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-4-23
收藏
得分:0 
???
结果一样啊
还是无法显示,要么就是乱码
2008-10-13 15:42
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
哦,你的s2没指回第二个字符串的开头,用另外一个变量来保存

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-10-13 16:25
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
你看看你的函数运行结束以后,s2指向了什么

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-13 16:42
ciappcia
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-6-7
收藏
得分:0 
#include <iostream>
using namespace std;

void str(char *a,char *b,int start,int num)
{
    if(start+num>=100)
        return;
    else
    {
        int i=0;
        while(num--)
        {
            b[i++]=a[start++];
        }
        b[i]='\0';
    }
}


void main()
{
    char a[100],b[100];
    gets(a);
    str(a,b,2,3);
    cout<<b;
}
2008-10-13 16:52
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
事实上,C库函数里面就又可以解决你的问题的方法,比如:

程序代码:
//将a[100]中的第m到n个字符存入b[100]中,输出
#include "stdio.h"
#include "string.h"

int main()
{
    char a[100], b[100];
    int c, d;
    fgets(a, 99, stdin);
    scanf("%d %d", &c, &d);
    d -= c - 1;
    if (d >= 0)
    {
        strncpy(b, a + c, d);
        b[d] = 0;
        puts(b);
    }
    return 0;
}

或者,更紧凑一点:
程序代码:
#include "stdio.h"
#include "string.h"

int main()
{
    char a[100];
    int c, d;
    fgets(a, 99, stdin);
    scanf("%d %d", &c, &d);
    d -= c - 1;
    if (d > 0)
        printf("%.*s\n", d, a + c); 
    return 0;
}


[[it] 本帖最后由 StarWing83 于 2008-10-13 16:56 编辑 [/it]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-13 16:54
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
6# 请注意,这里是C区,最好不要贴C++代码!

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-13 16:55
w362034710
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-12-2
收藏
得分:0 
p!=j ?
2008-10-13 16:58
快速回复:指针与字符数组
数据加载中...
 
   



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

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