| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 789 人关注过本帖
标题:字符输出有误!
只看楼主 加入收藏
sdg430
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-5-17
结帖率:66.67%
收藏
 问题点数:0 回复次数:7 
字符输出有误!
程序实现若输入“abcdefg”,则输出将其完全反向输出,应为“gfedcba”,但下面程序输出无结果,忘大家告知下!哪里有错误

#include "stdio.h"
#include "string.h"
   int main()
{

char pstr[10];
strcpy(pstr, "abcdefg");
char tmp[10];
for(int i=strlen(pstr);i>=0;i--)
{ tmp[strlen(pstr)-i]=*(pstr+i);
}
strcpy(pstr,tmp);

printf(" 结果为  %s\n",pstr);
getchar();
return 0;


}

搜索更多相关主题的帖子: 字符 有误 输出 
2010-07-21 18:07
mxs810
Rank: 9Rank: 9Rank: 9
来 自:火星
等 级:贵宾
威 望:16
帖 子:234
专家分:1122
注 册:2006-10-19
收藏
得分:0 
自己设置断点,查看每个变量的值的变化情况~~

授人以鱼不如授人以渔
2010-07-21 18:35
sdg430
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-5-17
收藏
得分:0 
已经找到问题了,自己的'\0'都给复制过去了,当然不行,但这样的做法似乎效率不高,大家能否告诉点效率更高点的思路!麻烦各位了!
2010-07-21 19:25
flyingcat
Rank: 4
来 自:HDU
等 级:业余侠客
威 望:2
帖 子:55
专家分:230
注 册:2010-7-18
收藏
得分:0 
都用了string.h里的东西了,为啥不用strrev函数?
//strrev(text),把text的内容反向
程序代码:
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    char text[100];
    while(gets(text))
    {
        strrev(text);
        puts(text);
    }
}
2010-07-21 20:45
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
嗯,有这个函数当然是不错了。不过这不是标准函数,不一定所有的环境都提供。
2010-07-22 10:37
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
其实楼主可以直接对着 pstr 变换。不用申请额外空间,也不用弄完了再拷回去。

类似这样:
for (i = 0, j = strlen(pstr); i < j; i++, j--) {
    char t = pstr[i]; pstr[i] = pstr[j]; pstr[j] =t;
}
2010-07-22 10:41
windyfzz
Rank: 2
等 级:禁止访问
帖 子:90
专家分:12
注 册:2010-7-25
收藏
得分:0 
#include<iostream>
using namespace std;
int main()
{
   char str[100];
   cin>>str;
   for(int i=(strlen(str)-1);i>=0;i--)
   {
       cout<<str[i];
   }
      return 0;
}  
2010-07-25 22:37
gq198718
Rank: 4
等 级:业余侠客
威 望:1
帖 子:86
专家分:200
注 册:2010-6-6
收藏
得分:0 
程序代码:
#include<iostream>
#include<string>
using namespace std;
   int main()
{

//char pstr[10];
char *pstr;
pstr=new char[10];
strcpy(pstr, "abcdefg");
//char tmp[7];
char *tmp;
tmp=new char[7];
for(int i=0;i<strlen(pstr);i++)
{

//tmp[strlen(pstr)-i]=*(pstr+i);
 tmp[i]=pstr[strlen(pstr)-i-1];
  cout<<tmp[i];
}
int j;
j=strlen(tmp);
cout<<endl<<j;
strcpy(pstr,tmp);
cout<<"结果为"<<tmp;
//printf(" 结果为  %s\n",pstr);
getchar();
return 0;
}
错误的地方差不多改过来了,楼主再试试;注意new
2010-07-30 15:02
快速回复:字符输出有误!
数据加载中...
 
   



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

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