| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1850 人关注过本帖
标题:字符串复制问题,求解答。
只看楼主 加入收藏
peter张
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:98
注 册:2017-3-7
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:17 
字符串复制问题,求解答。
图片附件: 游客没有浏览图片的权限,请 登录注册

这是为什么?前面怎么会有乱码?
搜索更多相关主题的帖子: 输入法 字符串 
2017-03-26 20:16
peter张
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:98
注 册:2017-3-7
收藏
得分:0 
程序代码:
#include <stdio.h>

int main(void)
{
    char string_1[] = {"hello , c program!"};
    char string_2[20];
    char *p ;
    int i ;

    p = string_1;

    for(i = 0; i< strlen(string_1); i++)
    {
        string_2[i] = p+i;
    }

    printf("%s \n",string_1);
    printf("%s \n",string_2);

    return 0 ;
}
2017-03-26 20:20
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:2 
不能用存放字符的地方存地址。
试将p+i改为*(p+i)
2017-03-26 20:23
peter张
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:98
注 册:2017-3-7
收藏
得分:0 
回复 3楼 吹水佬
hello , c program!
hello , c program!烫hello , c program!
Press any key to continue
编译后是这。
2017-03-26 20:26
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:1 
回复 4楼 peter张
#include <stdio.h>
#include <string.h>

int main(void)
 {
     char string_1[] = {"hello , c program!"};
     char string_2[20];
     char *p ;
     int i ;

     p = string_1;

     for(i = 0; i<= strlen(string_1); i++)
     {
         string_2[i] = *(p+i);
     }


     printf("%s \n",string_1);
     printf("%s \n",string_2);

     return 0 ;
 }
2017-03-26 20:56
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:2 
string_2无串结束标志'\0'
    for(i = 0; i< strlen(string_1); i++)
    {
        string_2[i] = *(p+i);
    }
    string_2[i] = '\0';

    for(i = 0; i<= strlen(string_1); i++)
    {
        string_2[i] = *(p+i);
    }
2017-03-26 20:58
初学编程的人
Rank: 2
等 级:论坛游民
威 望:2
帖 子:90
专家分:84
注 册:2017-3-12
收藏
得分:0 
    char string_1[] = {"hello , c program!"};
 不知道这语句楼主怎么理解的,我的理解是string_1[0]中存放的是一个指针,这个指针指向hello , c program!这个字符串。所以strlen(string_1)返回的是这个指针的数值所对应的字符的长度
2017-03-26 20:59
初学编程的人
Rank: 2
等 级:论坛游民
威 望:2
帖 子:90
专家分:84
注 册:2017-3-12
收藏
得分:0 
    char string_1[] = {"hello , c program!"};
 这句去掉大括号改成这样    char string_1[] = "hello , c program!";估计就是楼主想要的结果了
 
2017-03-26 21:01
peter张
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:98
注 册:2017-3-7
收藏
得分:0 
回复 6楼 吹水佬
厉害!!
2017-03-26 21:06
peter张
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:98
注 册:2017-3-7
收藏
得分:0 
回复 8楼 初学编程的人
加{}与不加{}有什么区别吗?
2017-03-26 21:08
快速回复:字符串复制问题,求解答。
数据加载中...
 
   



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

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