當前位置:首頁 » 編程語言 » c語言中字元串中的字元逆序排放
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中字元串中的字元逆序排放

發布時間: 2023-03-21 22:51:06

⑴ 用c語言寫 字元串逆序輸出

逆序輸出有很多種,具體的實現方法取決於你題目的要求
1. 如果只是要求逆序輸出,那麼可以採用類似的方法:
void reverse(char *s)
{
if(*s=='\0')
return;
reverse(s+1);
printf("%c",*s);
}
這種方法在s很長的情況下會一直遞歸到底,不是很好。
2. 如果需要將字元串整個逆序在函數外面輸出,那麼可能希望採用返回字元串指針的方式;實現如下:
char * reverse( char* s )
{
static char *p = s+strlen(s)-1; //p是一個靜態變數,指向當前遞歸層處理的字元串尾,而s指向字元串頭
if(s < p)
{
char c = *p; //交換頭尾字元
*p = *s;
*s = c;
p--; //尾向前挪一個
reverse(s+1); //相當於頭向後挪一個
}
return s;
}
3.1 當然,有的時候,並不需要reverse函數本身遞歸,而是可以藉助一些輔助的遞歸函數,比如說:
void reversehelp(char * head, char * end)
{
if (head < end)
{
char c = *head;
*head = *end;
*end = c;
reversehelp(++head, --end);
}
}
然後在調用時像這樣調用:
char * reverse(char * s)
{
char * end = s + strlen(s) - 1;
reversehelp(s, end);
return s;
}
3.2 類似的輔助函數還可以採用一個字元串指針和一個長度參數的方式,如下例:
void reversehelp( char* s, int n )
{
if ( n > 1 )
{
char c = s[n-1];
s[n-1] = s[0];
s[0] = c;
reversehelp( s+1, n-2 );
}
}
然後在調用時如下:
char *reverse(char *s)
{
reversehelp( s, strlen(s) );
return s;
}

⑵ C語言:輸入一個字元串,然後逆序輸出

#include <stdio.h>

int main()

{ int len,i;

char str[100];

gets(str);

len=strlen(str);

for(i=len-1;i>=0;i--)

printf("%c",str[i]);

return 0;

}

拓展資料

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

⑶ 如何用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(" ");

}

(3)c語言中字元串中的字元逆序排放擴展閱讀:

字元串倒序輸出的五種方法

1、使用數組循環

2、StringBuffer的reverse方法

3、StringBuffer的循環

4、棧的後進先出

5、迭代完成

⑷ C語言,輸入一個字元串,逆序排列後輸出

可以參考下面的代碼:

#include "stdio.h"

main()

{

char strA[200];

char Temp;

int i=0,Length=0;

clrscr();

printf("請輸入一個字元串:");

gets(strA);

Temp=strA[0];

while(Temp!=''){

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();

}

(4)c語言中字元串中的字元逆序排放擴展閱讀:

C語言參考函數:

atof(將字元串轉換成浮點型數)

atoi(將字元串轉換成整型數)

atol(將字元串轉換成長整型數)

strtod(將字元串轉換成浮點數)

strtol(將字元串轉換成長整型數)

strtoul(將字元串轉換成無符號長整型數)

toascii(將整型數轉換成合法的ASCII 碼字元)

注意事項:

字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的,如s=「abcdefghij」,則s[1]=「a」,s[10]="j",而字元串的零位正是它的長度,如s[0]=10(※上述功能Ansistring沒有。),這可以給我們提供很多方便,如高精度運算時每一位都可以轉化為數字存入數組。

⑸ C語言中字元串逆序排列的問題

#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();
}
你可以個性200到比較大的一個值,也可以在循環語句(FOR 或 WHILE)中加getchar()一個一個地輸入文字,然後設定一個結束標志
但是題目要求是要存入一個數組中,而在定義數組時必須指定數組大小,所以只能把數組設大一些,重要的是知道把字元串逆序的方法

⑹ 如何用C語言實現字元串逆序排列

樓主你好
具體代碼如下:
#include<stdio.h>
#include<string.h>
int
main()
{
char
*p;
char
c[20];
printf("Enter
a
string:");
scanf("%s",c);
p=c+strlen(c)-1;
while(p>=c)
printf("%c",*(p--));
printf("\n");
}
希望能幫助你哈

⑺ C語言編程如何將字元串中的各字元逆序存放

#include <stdio.h>
#include <string.h>
int main(void)
{
char s1[256],s2[256];
int i,j=0;
gets(s1);
for(i=strlen(s1)-1;i>=0;i--)
{
s2[j++]=s1[i];
}
puts(s2);
return 0;
}
這樣就把字元串s1倒序存放去s2了,輸出了s2.

⑻ 如何用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(" "纖槐);

}

(8)c語言中字元串中的字元逆序排放擴展閱讀:

字芹豎悉符串倒序輸出的五種方法

1、使用數組循環

2、StringBuffer的reverse方法

3、StringBuffer的循環

4、棧的後進先出

5、迭代完成

⑼ 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 ;}