标题:求教一道简单的题目
只看楼主
zhengxk89
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-7-29
结帖率:100%
 问题点数:0 回复次数:12 
求教一道简单的题目
将字符串s2中的前m个字符存到字符数组s1中,并在结尾加上一个‘\0’。不能使用系统提供的strcpy函数。
搜索更多相关主题的帖子: 字符 系统 strcpy 
2008-08-10 14:14
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:0 
程序代码:
/*******************************************************************************

        将字符串s2中的前m个字符存到字符数组s1中,并在结尾加上一个‘\0’。
    不能使用系统提供的strcpy函数。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        水平有限,谨作参考。

*******************************************************************************/
#include<stdio.h>
#include<string.h>
#define N 1000
int main(void)
{
        char s1[N];
        char s2[N];
        int i,m;
        printf("input s2[]:\n");
        gets(s2);
        printf("input m:\n");
        scanf("%d",&m);
        if(strlen(s2)>=m)
        {
                for(i=0;i<m;i++)
                        s1[i]=s2[i];
                s1[m]='\0';
                puts(s1);
        }
        else   printf("S1数组没有足够的长度。\n");
        return 0;
        getch();
}
2008-08-10 16:57
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
得分:0 
用指针应该能解决吧

一切从爱C开始
2008-08-11 16:10
csynyk
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2008-8-9
得分:0 
用指针拷贝字符串
程序代码:
/*用指针拷贝字符串*/
#include<stdio.h>
#include<windows.h>

void copy_string(char *str,char *result)  //目的空间要事先分配好!
{
    while(*str)
        *result++=*str++;
    *result='\0';
}

int main(void)
{
    char *str="asddsfgdfgdgd";
    char *res=(char *)malloc(1+strlen(str));
    copy_string(str,res);
    printf("%s\n",res);
    return 0;
}
2008-08-11 17:07
raymond1010
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-8-9
得分:0 
看看对不对,可能有问题
程序代码:
/****************
*将字符串s2中的前m个字符存到字符数组s1中,并在结尾加上一个‘\0’。不能使用系统提供的strcpy函数。
*(仅仅提供思路,具体判断是否溢出可以自行加if判断)
****************/
#include <stdio.h>
#include <string.h>
using namespace std;
#define M 5;
int main(void)
{
char *pstr1, *pstr2;
gets(pstr2);
int i;
for(i=0;i<m;i++)
{
(*pstr1++)=(*pstr2++);
}
*pstr2+m='\0';
puts(pstr2);
return 0;
}


[[it] 本帖最后由 raymond1010 于 2008-8-11 19:43 编辑 [/it]]
2008-08-11 19:39
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
得分:0 
[bo][un]raymond1010[/un] 在 2008-8-11 19:39 的发言:[/bo]


/****************
*将字符串s2中的前m个字符存到字符数组s1中,并在结尾加上一个‘\0’。不能使用系统提供的strcpy函数。
*(仅仅提供思路,具体判断是否溢出可以自行加if判断)
****************/
#include
 ...

拜托请发代码前自己编译一次试试。
2008-08-11 19:43
raymond1010
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-8-9
得分:0 
在WOW呢,开IDE恐怕会挂。。。
2008-08-11 19:55
csynyk
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2008-8-9
得分:0 
呵呵!raymond1010犯了野指针的错误!
char *pstr1, *pstr2;
gets(pstr2);
2008-08-11 21:28
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
得分:0 
指针不是用在这的  自找麻烦

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-08-12 09:37
zhengxk89
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-7-29
得分:0 
谢谢大家回复啊
2008-08-13 15:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-227562-1-1.html




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

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