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];
}
}
运行结果
求高手帮忙,额,我字符串这块没学好,麻烦了 展开
#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];
}
}
运行结果
求高手帮忙,额,我字符串这块没学好,麻烦了 展开
4个回答
展开全部
没有看明白你的代码,如果只是想把字符逆转后再输出.这应是很简单的,下面我写了一个逆转字符后并输出的代码:
#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]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像你的输出有问题,如果没记错,字符的输出c语言里面只能用for循环一个一个字符输出吧。c++可以直接写字符数组名输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先确定了长度
length=strlen(str);
再读入 scanf("%s",str);
很明显者两者对不上
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';//需要增加字符串结尾字符
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询