| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖, 1 人收藏
标题:strcpy的基本问题,请大侠指点
取消只看楼主 加入收藏
luoyang2404
Rank: 2
等 级:论坛游民
帖 子:19
专家分:27
注 册:2010-11-8
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:1 
strcpy的基本问题,请大侠指点
void getinfo(struct namect *pst)
{
    char temp[81];
    printf("please enter your first name.\n");
    gets(temp);
    pst->fname=(char*)malloc(strlen(temp)+1);
    strcpy(pst->fname,temp);
    printf("please enter your last name.\n");
    gets(temp);
    pst->lname=(char *)malloc(strlen(temp)+1);
    strcpy(pst->lname,temp);
}

我的疑问:1,STRCPY用于字符串复制,那么复制后temp中数据是否全部清空?
          2,如果不清空,那么要是firstname的长度大于lastname,会不会发生溢出?

请高手指点,谢谢
搜索更多相关主题的帖子: strcpy 
2010-11-11 15:17
luoyang2404
Rank: 2
等 级:论坛游民
帖 子:19
专家分:27
注 册:2010-11-8
收藏
得分:0 
源代码如下:
//name3.c--使用指针和malloc()函数
#include<stdio.h>
#include<string.h>  //为了使用strcpy(),strlen()
#include<stdlib.h>  //为了使用malloc(),free()

struct namect{
    char *fname;
    char *lname;
    int letters;
};
void getinfo(struct namect *);
void makeinfo(struct namect*);
void showinfo(const struct namect *);
void cleanup(struct namect *);

int main(void)
{
    struct namect person;
    getinfo(&person);
    makeinfo(&person);
    showinfo(&person);
    cleanup(&person);
    return 0;
}

void getinfo(struct namect *pst)
{
    char temp[81];
    printf("please enter your first name.\n");
    gets(temp);
    pst->fname=(char*)malloc(strlen(temp)+1);
    strcpy(pst->fname,temp);
    printf("please enter your last name.\n");
    gets(temp);
    pst->lname=(char *)malloc(strlen(temp)+1);
    strcpy(pst->lname,temp);
}

void makeinfo(struct namect *pst)
{
    pst->letters=strlen(pst->fname)+strlen(pst->lname);
}

void showinfo(const struct namect *pst)
{
    printf("%s %s,your name contains %d letters.\n",pst->fname,pst->lname,pst->letters);
}

void cleanup(struct namect *pst)
{
    free(pst->fname);
    free(pst->lname);
}
2010-11-12 10:44
快速回复:strcpy的基本问题,请大侠指点
数据加载中...
 
   



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

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