| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1312 人关注过本帖
标题:新人关于字符串指针的一点迷惑
取消只看楼主 加入收藏
yujianwu89
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-4-25
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
新人关于字符串指针的一点迷惑
最近一直在自学C,学到字符串指针的时候就有点混乱了。恳请各位大佬赐教:

对于strcpy,想自己尝试着用另一种方式来实现一下,把指针b的值赋予指针a,于是写了以下的代码

#include <stdio.h>

int main()
{
    char *a;
    char *b="hello";

    while(*b!='\0'){
        *a=*b;
        a++;
        b++;
    }
    *a='\0';

    printf("%s\n",a);

    return 0;
}

但是运行的时候总是崩溃,不知道到底是哪里出了错误。
搜索更多相关主题的帖子: include return 字符串 hello 
2017-04-25 16:29
yujianwu89
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-4-25
收藏
得分:0 
回复 2楼 rjsp
多谢版主,但是只能用数组的方式实现吗?纯用指针可以么?
2017-04-25 16:36
yujianwu89
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-4-25
收藏
得分:0 
以下是引用平平小黄在2017-4-25 18:10:33的发言:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>//这里好像是必要的。
int main()
{
    char *b="hello",*c;
    char *a=malloc(sizeof(b));//增加这一行 开辟空间
    c=b;//让c指向*b的首位置
    while(*b!='\0')
    {
        *a=*b;
        a++;//printf("%s\n",b);你可以看一下b指针值的变化,挺有意思的
        b++;
    }
    *a='\0';
    a=c;//让a从新指向首位置
    printf("%s\n",a);

    return 0;
}

非常感谢,跟我想要的一样,谢谢!
2017-04-25 19:06
快速回复:新人关于字符串指针的一点迷惑
数据加载中...
 
   



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

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