| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 711 人关注过本帖
标题:为什么程序运行的结果 虽然是倒序输出了 但是有输出了一串别的汉字
只看楼主 加入收藏
dcl2014
Rank: 4
等 级:业余侠客
威 望:1
帖 子:58
专家分:273
注 册:2014-9-20
结帖率:100%
收藏
 问题点数:0 回复次数:8 
为什么程序运行的结果 虽然是倒序输出了 但是有输出了一串别的汉字
#include<stdio.h>
#include<string.h>
#include <malloc.h>

void test(char*,char * &bingo);
int main(void)
{   
    char line[30];
    puts("Enter strings");
    gets(line);
    int n;
    n=strlen(line)-1;
    char *bingo=(char *)malloc((n+1)*sizeof(char));
    puts(bingo);
    printf( "The line entered was: %s\n", line );
    test(line,bingo);
    puts(bingo);
    free(bingo);
    return 0;
}

void test(char*ptr,char * &bingo)
{
    int i;
    char *p=bingo;
    for(i=strlen(ptr)-1;i>=0;i--)//求出ptr的长度,然后利用指针,从尾巴指向头部,然后返回指针值、
        {

         *(p+(strlen(ptr)-1-i))=*(ptr+i);
        }
     
}
//以下是运行结果
Enter strings
juyh
屯屯??葺葺葺葺_?幤?
The line entered was: juyh
hyuj??葺葺葺葺_?幤?
Press any key to continue
搜索更多相关主题的帖子: include return Enter bingo 汉字 
2014-09-24 10:07
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
bingo没有字符串结束符

总有那身价贱的人给作业贴回复完整的代码
2014-09-24 10:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
错误是2楼所说造成的。但程序设计上,这个是不需要重新分配内存的。

授人以渔,不授人以鱼。
2014-09-24 10:57
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
“字符反序月”?最近三四个帖子都这内容,估计用的是同一本教材,呵呵

梦想拥有一台龙芯3A-4000
2014-09-24 10:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用ditg在2014-9-24 10:59:50的发言:

“字符反序月”?最近三四个帖子都这内容,估计用的是同一本教材,呵呵

或者是马甲呢

授人以渔,不授人以鱼。
2014-09-24 11:00
dcl2014
Rank: 4
等 级:业余侠客
威 望:1
帖 子:58
专家分:273
注 册:2014-9-20
收藏
得分:0 
根据2楼所说:程序修改如下
         int n;
    n=strlen(line);
    char *bingo=(char *)malloc((n+1)*sizeof(char));
   *(bingo+n)='\0';
是可以运行的。
三楼说不需要重新分配内存是什么意思呢
2014-09-24 11:01
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
回复 5 楼 T 版
有可能,手法比较接近,呵呵

梦想拥有一台龙芯3A-4000
2014-09-24 11:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你在查找原串结尾符的时候,就已经把字符数记录下来了,然后倒过来逐个字符输出getchar()相应的字符数目即可,不用另外构造一个字符串,也不需要结束符。记住:是逐个字符输出!

授人以渔,不授人以鱼。
2014-09-24 11:09
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:0 
我比较好奇是什么教材》》
2014-09-24 20:41
快速回复:为什么程序运行的结果 虽然是倒序输出了 但是有输出了一串别的汉字
数据加载中...
 
   



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

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