当前位置:首页 » 编程语言 » c语言逆序打印字符
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言逆序打印字符

发布时间: 2022-08-11 22:46:23

c语言中,如何逆序任意输出的字符串 求简单易懂的方法。

一般的逆序用两个while,但没多少人用,给你三种常见方法
一 设置两个指针,分别指向字符串的头部和尾部,然后交换两个指针所指的字符,并向中间移动指针直到交叉。

char *Reverse(char *s){ // p指向字符串头部 char *p = s ; // q指向字符串尾部 char *q = s ; while(*q) ++q ; q -- ; // 交换并移动指针,直到p和q交叉 while(q > p) { char t = *p ; *p++ = *q ; *q-- = t ; } return s ;}二 用递归的方式,需要给定逆序的区间,调用方法:Reverse(s, 0, strlen(s)) ;

// 对字符串s在区间left和right之间进行逆序,递归法char *Reverse( char *s, int left, int right ){ if(left >= right) return s ; char t = s[left] ; s[left] = s[right] ; s[right] = t ; Reverse(s, left + 1, right - 1) ;}三 非递归法,同样指定逆序区间,和方法一没有本质区别,一个使用指针,一个使用下标。

// 对字符串str在区间left和right之间进行逆序char *Reverse( char *s, int left, int right ){ while( left < right ) { char t = s[left] ; s[left++] = s[right] ; s[right--] = t ; } return s ;}

Ⅱ C语言 逆序输出字符串

程序的关键点是:
1.定义一个char类型数组char
a[100];
2.输入字符串scanf("%s",
a);
3.获取字符串长度int
ilength
=
strlen(a);
4.倒序循环输出
for(int
i
=
ilength
-1;
i
>=
0;
i--)
{
prinft("%c",
a[i]);
}
5.用上面的步骤应该可以写出来了。自己做相信更有成就感。

Ⅲ C语言 将一个正整数逆序输出

思路:逆序输出一个整数可以对其除10直到其为0为止,并输出其对10取余,最后的结果就是这个整数的逆序。
参考代码:
#include

int main()
{
int n;
scanf("%d",&n);
while(n)
{
printf("%d ",n%10);
n/=10;
}
return 0;
}
/*
输出:
12345
5 4 3 2 1
*/

Ⅳ 用c语言倒序输出字符串

思路:
用一个足够长的字符数组来接受用户的输入,然后从最后数组最后一个位置开始输出字符。
代码如下:
#include<stdio.h>
#include<string.h>
#defineBUFFER1024/*定义常量BUFFER,值为1024,作数组长度*/
intmain(void)
{
inti;
chara[buffer];
gets(a);/*将用户的输入存进字符数组*/
for(i=strlen(a)-1;i>=0;i--)/*从数组的最后位置开始输出字符*/
printf("%c",a[i]);/*以字符的格式依次显示每个字符*/
printf(" ");
return0;
}
程序运行截图如下:

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

C语言程序如下:

#include<stdio.h>

#include<string.h>

main()

{

int i,j,t,n;

char a[10];

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

gets(a);

n=strlen(a);

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

{

t=a[i];

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

a[n-1-i]=t;

}

for(j=0;j<n;j++)

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

printf(" ");

}

(5)c语言逆序打印字符扩展阅读:

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

1、使用数组循环

2、StringBuffer的reverse方法

3、StringBuffer的循环

4、栈的后进先出

5、迭代完成

Ⅵ c语言关于 字符串倒序并输出

for
(i
=
0;
i
<
len
;
i++)
{
a1[i]
=
a[len
-
i
-
1];
//
这样写整个转了一圈,而且数据被破坏了,你没有先保存原a[i]的值,丢了!
}
for
(i
=
0;
i
<
len
/
2;
i++)
这是正确写法,前半部分与后半部分交换!!
{
temp
=
a[i];
//保存
a[i]
=
a[len
-
i
-
1];
后面的移前面
a[len
-
i
-
1]
=
temp;
//将前面的保存的数据,移到后面
}