| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1079 人关注过本帖
标题:[求助]我想实现一个字符串的反序输出,可是不知道错哪啦。呜哇哇
只看楼主 加入收藏
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
结帖率:100%
收藏
 问题点数:0 回复次数:7 
[求助]我想实现一个字符串的反序输出,可是不知道错哪啦。呜哇哇
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
void main()
{
char *p;
int i,size;
printf("Enter the size:");
scanf("%d",&size);
p=(char *) malloc(size*sizeof(char));
if (p==NULL)
{
printf("No memory!\n");
exit(-1);
}
for (i=0;i<size;i++)
scanf("%c",p+i);
for (i=0;i<size;i++)
{
char ch=p[i];
p[i]=p[size-i-1];
p[size-i-1]=ch;
}
for (i=0;i<size;i++)
printf("%c",p[i]);
printf("\n");
free(p);
}
这个动态分配内存我一直犯迷糊,高手指点迷津呀!
呵呵~~~~~~







搜索更多相关主题的帖子: 字符 char include size 
2007-01-30 04:17
工藤♀新一
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2006-5-4
收藏
得分:0 
以下是引用pinglideyu在2007-1-30 4:17:00的发言:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
void main()
{
char *p;
int i,size;
printf("Enter the size:");
scanf("%d",&size);
getchar();
p=(char *) malloc(size*sizeof(char));
if (p==NULL)
{
printf("No memory!\n");
exit(-1);
}
for (i=0;i<size;i++)
scanf("%c",p+i);
for (i=0;i<size/2;i++)
{
char ch=p[i];
p[i]=p[size-i-1];
p[size-i-1]=ch;
}
for (i=0;i<size;i++)
printf("%c",p[i]);
printf("\n");
free(p);
}







帮你稍微改了下,看来逆序输出还是没掌握

[此贴子已经被作者于2007-1-30 11:41:41编辑过]


很高兴能和大家一起学习程序! QQ:114109098
2007-01-30 11:40
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
呵呵 对了 没注意.
谢了哟!~~~~~~~~~~

~~我的明天我知道~~
2007-01-30 14:52
ws海鸥
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-9-13
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h>


void fan(char *,int );


int main(void) {
char *str;
int strlength;
str="I love you!";
strlength=11;
fan(str,11);
return 0;
}

void fan(char *str,int strlength) {
char *str1;
char temp;
int i;
str1=(char *) malloc(sizeof(strlength));
for(i=0;i<strlength;i++){
str1[i]=str[i];
}
for(i=0;i<strlength;i++) {
temp=str1[strlength-1-i];
str[i]=temp;
}
return ;
}

那么这么写,,又错在什么地方了呢!看上去跟上面的没有什么差别!

2007-09-13 19:17
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
前几天刚讨论过这个问题,楼主可以找找这篇帖子看看!
2007-09-13 21:24
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
我喜欢这样写:

for(i=0,j=strlen(str)-1;i<j;i++,j--)
{
temp=str[i],str[i]=str[j],str[j]=temp;
}

倚天照海花无数,流水高山心自知。
2007-09-13 21:35
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>

void reverse()
{
char ch;
ch=getchar();
if(ch!='\n')
reverse();
putchar(ch);
}

int main()
{
printf("Enter a string:");
reverse();
getch();
return 0;
}


只有想不到,没有做不到
2007-09-14 18:03
ws海鸥
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-9-13
收藏
得分:0 
我看过了,,不过我不知道,我写那个错在什么地方,,,在逻辑没有错!!!
我个人认为,,但是就是编译器过来了!
2007-09-14 19:00
快速回复:[求助]我想实现一个字符串的反序输出,可是不知道错哪啦。呜哇哇
数据加载中...
 
   



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

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