| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:关于指针的
只看楼主 加入收藏
郭俊森
Rank: 1
等 级:新手上路
帖 子:27
专家分:3
注 册:2013-2-28
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:4 
关于指针的
怎么样才能用char *copy(char *s1,char *s2,int m), 将串s2中从第m个字符开始的全部字符复制到s1
我一用for(h=s1;*s1!=‘\0’;s1++)后返回s1时就没值了这是怎么回事帮忙解决
2013-06-06 19:40
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
收藏
得分:10 
程序代码:
#include<stdio.h>
void mystrcopy(char *s1,char *s2,int m);
void main()
{
    char s1[11],s2[11];
    int m;
    printf("请输入10个字符\n");
    scanf("%s", s2);
    m=3; 
    mystrcopy(s1,s2,m);
    printf("%s",s1);
}
void mystrcopy(char *s1,char *s2,int m)
{
    int i,j;
    j = 0;////
    for(i=m-1;s2[i]!='\0';i++)
    {
        s1[j]=s2[i];
        j++;
    }
    s1[j] = '\0';
}


[ 本帖最后由 lwb603569640 于 2013-6-6 19:46 编辑 ]

自由、民主、宪政!
2013-06-06 19:43
郭俊森
Rank: 1
等 级:新手上路
帖 子:27
专家分:3
注 册:2013-2-28
收藏
得分:0 
谢谢,我改了一下得到了我想要的了下面是我改的。同时我想问一下有没有char *copy(char *s1,char *s2,int m)中的返回怎么做呢?

#include <stdio.h>
#include <string.h>

void *copy(char *s1 ,char *s2 ,int m )
{
    int l2 ,i;
    char *p1 ,*p2;
   
    l2 = strlen(s2);
    p1 = s2 + l2;//p1指向s2的'\0'
    p2 = s1 + m - 1;
    for(i=1 ;*p2!='\0' ;i++) //增量运算符所作用的运算对象只能是变量,不能是常量或由运算符构成的表达式。
    {                  //例如,(x+y)++、++5 都是不正确的。 增量运算符作用于
        *p1++ = *p2++;  //变量以后,与变量一起构成了一个新的表达式──增量表达式。
    }                  //增量表达式不能出现在赋值表达式的左边。例如,i++=1 是不允许的。
    *p1 = '\0';   
    printf("%s\n" ,s2);
}

void main()
{
    int m = 0;
    char a[80] ,b[80];
    printf("输入字符串1:\n");
    gets(a);
    printf("输入字符串2:\n");
    gets(b);
    printf("输入m的值:\n");
    scanf("%d",&m );
    copy(a ,b ,m );
}
2013-06-06 20:02
猫小喵
Rank: 2
来 自:计算机专业
等 级:论坛游民
帖 子:29
专家分:77
注 册:2013-5-12
收藏
得分:10 

#include <stdio.h>
 #include <string.h>
 
void copy(char *s1 ,char *s2 ,int m )
 {
     int l2 ,i;
     char *p1 ,*p2;
     
    l2 = strlen(s2);
     p1 = s2 + l2;//p1指向s2的'\0'
     p2 = s1 + m - 1;
     for(i=1 ;*p2!='\0' ;i++) //增量运算符所作用的运算对象只能是变量,不能是常量或由运算符构成的表达式。
     {                  //例如,(x+y)++、++5 都是不正确的。 增量运算符作用于
         *p1++ = *p2++;  //变量以后,与变量一起构成了一个新的表达式──增量表达式。
     }                  //增量表达式不能出现在赋值表达式的左边。例如,i++=1 是不允许的。
     *p1 = '\0';   
    printf("%s\n" ,s2);
 }
 
void main()
 {
     int m = 0;
     char a[80] ,b[80];
     printf("输入字符串1:\n");
     gets(a);
     printf("输入字符串2:\n");
    gets(b);
     printf("输入m的值:\n");
     scanf("%d",&m );
     copy(a ,b ,m );
 }


你这个以前在论坛里出现过  void copy(char *s1 ,char *s2 ,int m )错了!你的多了个*

做一个爱编程得女生
2013-06-06 20:45
郭俊森
Rank: 1
等 级:新手上路
帖 子:27
专家分:3
注 册:2013-2-28
收藏
得分:0 
我运行正确啊
2013-06-06 20:54
快速回复:关于指针的
数据加载中...
 
   



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

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