C语言,输入一个字符串,逆序排列后输出

#include<stdio.h>voidmain(){charch,s1[100],s2[100];inti,j,n;gets(s1);(缺少的语句)for(i=0,j... #include <stdio.h>
void main()
{char ch,s1[100],s2[100];
int i,j,n;
gets(s1);
(缺少的语句)
for (i=0,j=n-1;i<n;i++,j--)
s2[j]=s1[i];
puts(s2);
}
请在(缺少的语句)部分补充谢谢!
我补充的是n=strlen(s1);但是执行的时候结果总是带一串这个fjdfhjkhgd 不知道为啥?
展开
 我来答
四舍五不入6
高粉答主

2020-01-13 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71371

向TA提问 私信TA
展开全部

可以参考下面的代码:

#include "stdio.h"

main()

{

char strA[200];

char Temp;

int i=0,Length=0;

clrscr();

printf("请输入一个字符串:");

gets(strA);

Temp=strA[0];

while(Temp!='\0'){

Length++;

Temp=strA[i++];

}

Length--;

for(i=0;i<Length/2;i++){

Temp=strA[i];

strA[i]=strA[Length-i-1];

strA[Length-i-1]=Temp;

}

puts(strA);

getch();

}

扩展资料:

C语言参考函数:

atof(将字符串转换成浮点型数)

atoi(将字符串转换成整型数)

atol(将字符串转换成长整型数)

strtod(将字符串转换成浮点数)

strtol(将字符串转换成长整型数)

strtoul(将字符串转换成无符号长整型数)

toascii(将整型数转换成合法的ASCII 码字符)

注意事项:

字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

参考资料来源:百度百科-c语言

独奕声钊鸾
2019-05-19 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:953万
展开全部
代码copy如下:
#include <stdio.h>
#include <string.h>
void fun(char a[])//逆序函数
{
int i,length;char t;
length=strlen(a);//统计字符串的个数
for(i=0;i<length/2;i++)
{
t=a[i];
a[i]=a[length-1-i];
a[length-1-i]=t;
}
}
viod main()
{
char a[10];
printf("input a string:");
gets(a);
puts(a);
fun(a);
puts(a);
}
//调试成zd功
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金鱼8884
2015-10-29 · 知道合伙人数码行家
金鱼8884
知道合伙人数码行家
采纳数:124 获赞数:14950
学生

向TA提问 私信TA
展开全部

代码如下:

#include <stdio.h>
#include <string.h>
void fun(char a[])//逆序函数
{
 int i,length;char t;
 length=strlen(a);//统计字符串的个数
 for(i=0;i<length/2;i++)
 {
  t=a[i];
  a[i]=a[length-1-i];
  a[length-1-i]=t;
 }
}
viod main()
{
 char a[10];
 printf("input a string:");
 gets(a);
 puts(a);
 fun(a);
 puts(a);
}
//调试成功
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
free_panwei
2008-09-03 · 超过84用户采纳过TA的回答
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:236万
展开全部
#include <stdio.h>
void main()
{char ch,s1[100],s2[100];
int i,j,n;
gets(s1);
n=strlen(s1);
for (i=0,j=n-1;i<n;i++,j--)
s2[j]=s1[i];
s[i]='\0'; //在这里加一句,如果不加只是字符数组,不是字符串
puts(s2);
}
和你填的一样,只是后面多加一句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
985967518
推荐于2017-09-02 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109866
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

定义两个字符串,一个接受输入的字符串,第二个逆序接受第一字符串,完成逆序排序。

参考代码:

#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100];
 int i,j,n;
 gets(a);//输入字符串 
 b[n=strlen(a)]='\0';//计算字符串长度,并确定字符b的结束位置 
 for(i=0,j=n-1;i<n;i++)//把a逆序赋值给b 
  b[j--]=a[i];
 puts(b);//输出s2 
 return 0;
}
/*
运行结果:
21324165
56142312
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式