c语言问题:error C2059: syntax error : ']'

#include<string.h>#include<stdio.h>voidreverse(chars[]){intc,i,j;for(i=0,j=strlen(s)-... #include <string.h>
#include <stdio.h>

void reverse(char s[])
{
int c,i,j;
for(i=0,j=strlen(s)-1;i<j;i++,j--)
c=s[i];
s[i]=s[j];
s[j]=c;
}

main()
{
char s[20];
char a;
printf("input the string");
scanf("s[]=%s",&s);
s[]=reverse();
printf("s[]=%s",s);
return a;
}

运行结果:
Compiling...
1109.cpp
F:\C_language_example\vcexample\1109.cpp(19) : error C2059: syntax error : ']'
Error executing cl.exe.

1109.obj - 1 error(s), 0 warning(s)

我是初学者,对字符串的输入输出总是不太清楚,运行提示的是s[]=reverse();这一行有错误,不知如何修改,s什么时候带[],什么时候不带。请哪位高人帮我指点一下。
展开
 我来答
HHP和尚
2007-11-09 · TA获得超过119个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:0
展开全部
你的reverse定义为void,都没返回值,你怎么给s[]赋值,
s[]=reverse();没有参数传递的啊(void reverse(char s[]) )

还有就是你的那个s[]写法也有问题,你的主函数main()没有定义要有返回值的吧,怎么又有一个return a
问题多多
甲皖清RG
2007-11-09 · TA获得超过682个赞
知道答主
回答量:307
采纳率:0%
帮助的人:296万
展开全部
scanf("s[]=%s",&s); s[]=reverse();
应分别改成scanf("s[]=%s",s); s[]=reverse(s);
s[]是字符数组,s就代表首地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dab4b28f1
2007-11-09 · TA获得超过291个赞
知道答主
回答量:308
采纳率:0%
帮助的人:0
展开全部
不要误人子弟好不好
scanf("s[]=%s",&s); s[]=reverse();
这里改成
scanf("s[]=%s",s);
reverse(s);
就可以了 数组当实参时 传的就是地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yiouzhou
推荐于2018-05-04 · TA获得超过435个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:396万
展开全部
你输入的数的个数不确定用指针比较好,还有函数里面的参数要用数组就要标出大小,要不也用指针

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

void reverse(char *s)
{
int c,i,j;
for(i=0,j=strlen(s)-1;i<j;i++,j--)
{c=s[i];
s[i]=s[j];
s[j]=c; }
}

main()
{
char s[20];
char a;
printf("input the string\n");
scanf("%s",s);
reverse(s);
printf("s[]=%s",s);
return a;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式