C语言将字符串逆序输出问题(用函数) 5

写一个函数,使输出的字符串逆序存放,然后这是我的程序:#include<stdio.h>#include<string.h>intmain(){charstr[100];... 写一个函数,使输出的字符串逆序存放,然后这是我的程序:
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
char opstr[100];
int length=0;
void op(char str[100],char opstr[100],int length);
length=strlen(str);
printf("nput string:\n");
scanf("%s",str);
op(str,opstr,length);
printf("inverse string:%s\n",opstr);

return 0;
}
void op(char str[100],char opstr[100],int length)
{
int i=0;
for(i=0;i<length;i++)
{
opstr[i]=str[length-i];
}

}
运行结果

求高手帮忙,额,我字符串这块没学好,麻烦了
展开
 我来答
kaixingui2012
推荐于2017-09-17 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6217万
展开全部

采用函数进行字符串逆序输出,过程为:

  1. 定义函数,参数为字符串指针

  2. 定义局部变量指针t指向原字符串

  3. 移动t指针到字符串尾

  4. 向移动t指针,直到回到原指针头,输出各位置字符。

参考代码:

仙戈雅3n
2013-12-01 · TA获得超过5789个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:869万
展开全部

没有看明白你的代码,如果只是想把字符逆转后再输出.这应是很简单的,下面我写了一个逆转字符后并输出的代码:

#include <stdio.h>
#include <string.h>
#define  STRING_MAX_LONG 100
/*  Function prototypes */
void swaping(char*,char*),InverseString(char*,int);

void main()
{
   char str[STRING_MAX_LONG];
   int strLen=0;
   printf("Please input string:");
   scanf("%s",str);

   InverseString(str,strlen(str));
   printf("\nInverse string after:%s\n",str);
}

void swaping(char *a,char *b)
{
char temp=*a;
*a=*b;
*b=temp;
}
void InverseString(char s[],int len)
{
int i,k=-1,j;
i=j=0;

for (i=k+1;i<len;i++){
       j=len-i+k;
   if(i>=j) break;
   swaping(&s[i],&s[j]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3841cea
2013-12-01 · 超过20用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:48.5万
展开全部
好像你的输出有问题,如果没记错,字符的输出c语言里面只能用for循环一个一个字符输出吧。c++可以直接写字符数组名输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qmg1023
2013-12-01 · TA获得超过888个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:892万
展开全部
你先确定了长度

length=strlen(str);

再读入 scanf("%s",str);

很明显者两者对不上
追问
修改之后还是有问题
追答

下面在你代码上修改好了,有几个小问题:

#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
char opstr[100];
int length=0;
void op(char str[100],char opstr[100],int length);

printf("input string:\n");
scanf("%s",str);
length=strlen(str);//赋值移动到这里 
op(str,opstr,length);
printf("inverse string:%s\n",opstr);


return 0;
}
void op(char str[100],char opstr[100],int length)
{
int i=0;
for(i=0;i<length;i++)
{
opstr[i]=str[length-1-i];//需要再多减1 
}
opstr[i]='\0';//需要增加字符串结尾字符 
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式