| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2683 人关注过本帖
标题:字符串中'\0'字符的复制问题!
只看楼主 加入收藏
duanlt8
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:70
专家分:107
注 册:2011-9-15
结帖率:90.91%
收藏
已结贴  问题点数:5 回复次数:7 
字符串中'\0'字符的复制问题!
题目要求:把from字符数组的里字符全部复制到to里,不用strcpy函数, 复制时'\0'也要复制过去,但是'\0'后面的字符不复制.
我写的代码:
int main(void)
{
    char from[80],to[80];
    int i,len;
    scanf("%s",from);
    len = strlen (from);        //统计from的字符个数  不包括结束字符'\0'
    for ( i=0; i<=len; i++)
    {
    to[i]=from[i];        //逐个复制字符到to中;'\0'也要复制过去,后面字符不复制
    if(from[i]=='\0')
    break;

    }
    printf("%s\n",to);
}

红色的地方 一直不会写 上面的红色应该不对, 不知道怎么写来打到这个效果:复制时'\0'也要复制过去,但是'\0'后面的字符不复制
搜索更多相关主题的帖子: 统计 字符串 
2011-11-17 15:34
dreamofgod
Rank: 5Rank: 5
等 级:职业侠客
帖 子:194
专家分:341
注 册:2011-8-16
收藏
得分:2 
运行正确,没有发现错误。
PS:求楼主头像高清大图

一个单片机就让我头疼不已~~~
2011-11-17 16:07
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:2 
len = strlen (from);        //统计from的字符个数  不包括结束字符'\0'
像这个如果个数个N,那么for ( i=0; i<=len; i++)这样一循环,就把第N+1个元素也复制过去了,
即已经把'\0'复制过去了
所以只要for ( i=0; i<=len; i++)
             to[i]=from[i];
就行了。
2011-11-17 17:17
duanlt8
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:70
专家分:107
注 册:2011-9-15
收藏
得分:0 
回复 2楼 dreamofgod
邮箱神马的发来    也没有太大
2011-11-17 18:03
dreamofgod
Rank: 5Rank: 5
等 级:职业侠客
帖 子:194
专家分:341
注 册:2011-8-16
收藏
得分:0 
回复 4楼 duanlt8
dreamofjay@
楼主是好人

一个单片机就让我头疼不已~~~
2011-11-17 18:36
dreamofgod
Rank: 5Rank: 5
等 级:职业侠客
帖 子:194
专家分:341
注 册:2011-8-16
收藏
得分:0 
奉上另一种写法
程序代码:
#include<stdio.h>
int main(void)
{
    char from[80]={0},to[80]={0};
    int i=0;    
    scanf("%s",from);
    do
    {
        to[i]=from[i];
        i++;
    }
    while(from[i]!='\0');
    printf("%s\n",to);
    return 0;
}


[ 本帖最后由 dreamofgod 于 2011-11-17 18:50 编辑 ]

一个单片机就让我头疼不已~~~
2011-11-17 18:44
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:2 
回复 4楼 duanlt8
挺好看的给我也发下 553069938@

                                         
===========深入<----------------->浅出============
2011-11-17 18:46
zyj0021
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2007-5-7
收藏
得分:0 
程序代码:
#include <stdio.h>
int main(void){
    char from[80],to[80];
    int i;
    scanf("%s",from);
    for ( i=0; /*{这里直接省略了}*/; i++)    {
        to[i]=from[i];        //逐个复制字符到to中;'\0'也要复制过去,后面字符不复制
        if(from[i]=='\0')
        break;
    }
    printf("复制后:%s\n",to);
}



[ 本帖最后由 zyj0021 于 2011-11-21 09:48 编辑 ]
2011-11-21 09:28
快速回复:字符串中'\0'字符的复制问题!
数据加载中...
 
   



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

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