如何用C语言将字符串逆序输出?

如何用C语言将字符串逆序输出?,第1张

C语言程序如下:

#include<stdio.h>

#include<string.h>

main()

{

int i,j,t,n

char a[10]

printf("请输入字符串:")

gets(a)

n=strlen(a)

for(i=0i<=n/2i++)

{

t=a[i]

a[i]=a[n-1-i]

a[n-1-i]=t   

}

for(j=0j<nj++)

printf("%c",a[j])

printf("\n")

}

扩展资料:

字符串倒序输出的五种方法

1、使用数组循环

2、StringBuffer的reverse方法

3、StringBuffer的循环

4、栈的后进先出

5、迭代完成

①要求

将正整数或负整数

个位开始逆序输出。

涉及三个变量,

n是原数,

m用于储存提取的个位数,

y用于储存重新组合的逆序数。

②定义函数

#include<stdio.h>

int fun(int n)

{int m,y} ;

/*给y赋初值,组合数在组合之前为0。*/

y=0

/*给m赋初值,将原数n的绝对值赋值给m。

我试了,也可以直接m=n,删除y=(n>=0)?y:-y,结果一样有负号,绝对值具体还有什么用,等待大神解答。*/

if(n>=0)m=n

else m=-n

/*当m不为0时,循环继续。

当m为0时,即提取到只剩一位数时,m=m/10=0,循环结束。*/

while(m!=0)

{y=y*10+m%10

/*提取个位:m%10。

已经提取个位升为十位:y乘10。

逆序组合数:y。*/

m=m/10}

/*降位提取个位:m/10

不断除10取整,屏蔽个位;

不断将十位降为个位,再提取;

直到只剩一位数,循环结束。*/

y=(n>=0)?y:-y

/*将负数的负号恢复。*/

return y

}

③主函数

{int m1,m2

scanf("%d%d",&m1,&m2)

printf("%d的逆序是%d\t",m1,fun(m1))

printf("%d的逆序是%d\t",m2,fun(m2))

return 0

}

④思路整理

1.输入原数:n

2.求绝对值:m=|n|

3.提取个位:m%10

4.逆序组合:y=y*10+m%10

5.高位降位:m/10

6.恢复负号:y=(n>=0)?y:-y


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11881604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存