C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符

#include<stdio.h>#defineN50voidreverse(chara[],intN){inti,j,temp;for(i=0,j=N-1;i<j;i+... # include <stdio.h>
# define N 50
void reverse(char a[],int N)
{
int i,j,temp;
for(i=0,j=N-1;i<j;i++,j--)
{
a[j]=temp;
a[j]=a[i];
a[i]=temp;
}
}
void main ()
{
int k;
char b[N];
printf("请输入一串字符:\n");
for(k=0;k<N;k++) scanf("%s",&b);
printf("反序输出的结果是:\n");
puts(reverse(b));
}
这个程序哪错了?
还有系统不让我通过啊,反馈的错误是
ompiling...
ch07_05.cpp
C:\Documents and Settings\Administrator\桌面\ch07_05.cpp(3) : error C2143: syntax error : missing ')' before 'constant'
C:\Documents and Settings\Administrator\桌面\ch07_05.cpp(3) : error C2143: syntax error : missing ';' before 'constant'
C:\Documents and Settings\Administrator\桌面\ch07_05.cpp(3) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
展开
 我来答
匿名用户
2009-12-14
展开全部
不成功,错误太多。。。。

你只返回了一个字符,还有,你的D[100];是局部变量。。
函数执行完后就释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奋斗拼搏的小牛
2012-05-04
知道答主
回答量:16
采纳率:0%
帮助的人:10.3万
展开全部
#include<iostream>
#include<cassert>
using namespace std;
void Print(char *p)
{
if(NULL == p)return;
int n=strlen(p);
for(int i=0;i<n;++i)
cout<<p[i]<<" ";
cout<<endl;
}
void Swap(char &s,char &d)
{
char temp=s;
s=d;
d=temp;
}
char *fun(char *p)
{
if(NULL == p)return NULL;
int n=strlen(p);
int i=0,j=n-1;
while(i<j)
{
Swap(p[i],p[j]);
++i;
--j;
}
return p;
}
int main()
{
int n=0;
cout<<"please enter the nomber of your string!"<<endl;
cin>>n;
char *p=new char[n];
assert(p != NULL);
cout<<"please enter the your string!"<<endl;
cin>>p;
Print(p);
char *q=fun(p);
Print(q);
return 0;
}

好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锕钚3G
2014-01-23 · 超过25用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:62.6万
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void SortStr(char *str)
{
char buf[128], *sp = str;
int i;

strcpy(buf, str);
for (i = strlen(buf) - 1; i >= 0; i--) {
*sp++ = buf[i];
}
}

int main(void)
{
char buf[128];

memset(buf, 0, sizeof(buf));
fgets(buf, sizeof(buf), stdin);
buf[strlen(buf) - 1] = '\0';

SortStr(buf);
printf("%s\n", buf);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dwjchdu
2013-12-17 · TA获得超过5914个赞
知道大有可为答主
回答量:4576
采纳率:60%
帮助的人:1091万
展开全部
# include <stdio.h>
# define N 50
void reverse(char a[],int n)
{
 int i,j,temp;
 for(i=0,j=n-1;i<j;i++,j--)
 {
    temp=a[j];
    a[j]=a[i];
    a[i]=temp;
 }
}
void main ()
{
 int k;
 char b[N];
 printf("请输入一串字符:\n"); for(k=0;k<N;k++)
  scanf("%s",&b);
 printf("反序输出的结果是:\n");
 reverse(b,N);
 puts(b);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2014-05-07 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65806
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
#include<stdio.h>
#include<string.h>
int fun(char a[])
{
int i,j,n;
char t;
n=strlen(a);
j=n/2;
for(i=0;i<j;i++)
{
t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;
}
}
main()
{
int i;
char a[100];
gets(a);
fun(a);
puts(a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式