當前位置:首頁 » 編程語言 » 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;
//將前面的保存的數據,移到後面
}