-
部分錯誤已得到糾正,具體方法在注釋中
#include
#define n 50
int main()
char a[n];
int n,k,i,t;
printf("您要輸入多少個字元? (n<=50)");
scanf("%d",&n);在這裡,你最初寫的是scanf("%c",&n),%c 應為需要讀取的字元型別的整數。
fflush(stdin);此行清除緩衝區,並清除您剛剛輸入的數字之後的回車符。
printf("輸入 %d 個整數字元:",n);這裡你也寫了 %c,但也把它改成了 %d
for(i=0;i
-
scanf("%c",&n);應該是。
scanf("%d",&n);
printf("您要輸入多少個字元? (n<=50)");
scanf("%d",&n);
fflush( stdin);
printf("輸入 %d 個整數字元:",n);
-
C語言程式如下:
#include
#include
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;jprintf("%c",a[j]);
printf("");
-
總結。 最常用的方法是使用指標,具體步驟如下:1
宣告乙個字元指標變數 P 並將其初始化為字串的第乙個位址; 2.使指標變數 q 指向字串的末尾,即 q=p+strlen(p)-1;3.交換指標 p 和 q 指向的字元,並將指標 p 向後移動乙個位置,將指標 q 向前移動乙個位置; 4.
重複步驟 3,直到 p 和 q 指向相同的字元,完成字串的相反順序。
C 以相反的順序輸出一串字元。
使指標變數 q 指向字串的末尾,即 q=p+strlen(p)-1;3.交換指標 p 和 q 指向的字元,並將指標 p 向後移動乙個位置,將指標 q 向前移動乙個位置; 4.重複步驟 3,直到 p 和 q 指向相同的字元,完成字串的相反順序。
Pro, include include int main() 這是完整的程式: include void main( )。
-
C語言程式如下:
#include
#include
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;jprintf("%c",a[j]);
printf("");
-
下面是 C 語言**。
#include
int main(void)
for 迴圈從後到前訪問字串,這實際上是乙個字元陣列 for(j=i-1; j>=0;j--)
printf("");
return 0;
原理:在C語言中對字串進行操作時,不僅可以對字元陣列進行操作,還可以使用字串的變數名作為指向字串的指標,變數名指向第乙個字元。 因此,指標可以從後到前讀取,從而實現反向輸出。
-
一般的反序使用兩個while,但使用的人不多,給你三種常用的方法。
乙個設定兩個指標以指向字串的頭部和尾部,然後交換兩個指標指向的字元,並將指標移動到中間,直到它交叉。
char *reverse(char *s) return s ;2. 在遞迴方式中,您需要給出乙個反轉的間隔並呼叫方法:reverse(s, 0, strlen(s))。
字串 s 在左右間隔之間反轉,遞迴方法 char *reverse( char *s, int left, int right ) 三種非遞迴方法,也指定了反向順序間隔,與方法 1 沒有本質區別,乙個使用指標,另乙個使用下標。
反轉字串 str 在 left 和 right 間隔之間的順序 char *reverse( char *s, int left, int right ) return s; }
-
函式名稱:strrev
功能:字串反轉。
用法:char *strrev(char *str);
示例:包括
#include
int main(void)
您可以嘗試輸出,scanf 函式是從緩衝區讀取的資料,第二個字串的資料是空格或換行符製表符。 您可以單獨讀取它們,但在兩者之間新增 fflush(stdin); 清除緩衝區。
使用字串就是使用它的第乙個位址(有時和長度,實際上,擁有第乙個位址就足夠了),無論字串有多長。 最明顯的例子是,當乙個(常量)字串作為引數及其第乙個位址傳遞時。 所以你的比較只是位址的比較。