當前位置:首頁 » 編程語言 » c語言字元串反序

c語言字元串反序

發布時間: 2022-05-11 20:05:54

c語言字元串反序輸出

數組定義完,沒有初始化;系統會分配一段物理內存給數組,如果不初始化,就會列印出亂碼,該段內存地址有可能之前被使用過。

chari[100]={0},o[100]={0};

結果對比:

  1. 未初始化數組

⑵ c語言把字元串反序

這是利用遞歸的演算法把數組的里的數據逆序輸出而已,並沒有真正的改變數組裡面數據的順序。程序的意思是這樣的,先從第一個值 i 解釋,該子函數第一個語句是先輸出 a[i] , 然後再調用子函數本身輸出 a[i-1] ,一次類推,知道 i<1時不再調用子函數,即程序結束。程序的效果就是逆序輸出
a[i],a[i-1],a[i-2]````````a[2],a[1];但實際數組數據的值的順序並沒有改變。

⑶ c語言如何將字元串反序排列

"for(i=0,j=strlen(str);i<(strlen(str)/2;i++,j--)這個地方解釋下 ~~ i<(strlen(str)/2;i++,j--)的意思"
i<(strlen(str)/2 //限定i的范圍是字元串長度的一半,作為循環的退出條件.
i++,j--) // i++ 是循環的一部分,這個你應該能理解,j--為的是跟++i 對稱起來,這是為了達到 字元串反序排列 的效果,j是從最後一位開始減的,也就是字元串的長度

str[i]=str[j-1];這里為什麼j-1???
假如你這個字元串的長度是 6, 那麼j一開始是6,
數組長度是6,那麼最後一個數組元素是 a[5],因為是從a[0]開始的.
a[0]是第一個
a[5]是第6個,

⑷ 用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>
#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語言將字元串逆序輸出

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

}

(6)c語言字元串反序擴展閱讀:

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

1、使用數組循環

2、StringBuffer的reverse方法

3、StringBuffer的循環

4、棧的後進先出

5、迭代完成

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

可以將整數當做字元串(字元串長度不超過10)接收,然後反向輸出字元數組元素即可。

字元串實際長度可以用strlen函數來計算。

方法程序如下:

#include<stdio.h>

#include<string.h>

main()

{char a[10];int i,j;

scanf("%s",a);

j=strlen(a);

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

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

printf(" ");}

(7)c語言字元串反序擴展閱讀:

C語言高效編程技巧:

一:以空間換時間

計算機程序中最大的矛盾是空間和時間的矛盾,那麼,從這個角度出發逆向思維來考慮程序的效率問題

二:數學方法解決問題

數學是計算機之母,沒有數學的依據和基礎,就沒有計算機發展,所以在編寫程序的時候,採用一些數學方法會對程序的執行效率有數量級的提高。

三:使用位操作

實現高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。

在計算機程序中,數據的位是可以操作的最小數據單位,理論上可以用「位運算」來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做數據變換使用,但是,靈活的位操作可以有效提高程序運行的效率。

⑻ c語言怎麼把字元串倒序

反序方法見 下面 函數 void op(char *s). 主函數是調用的例子。
#include <stdio.h>
void op(char *s){
int i,k;
char c;
k = strlen(s);
for (i=0;i<k/2;i++){c=s[i];s[i]=s[k-i-1];s[k-i-1]=c;};
};

int main()
{
char s[200];
printf("input one line string:\n");
gets(s);
op(s);
printf("%s\n",s);
return 0;
}
輸入:abc123
輸出:321cba

⑼ C語言反序輸出字元串

你是說*rev與rev[]吧,
在C語言里,當定義char
*rev的時候,rev是放在了常量區,值不能修改,因此會出錯;
而定義char
rev[]的時候,rev數組是放在了棧區,值可以修改,因此用數組不會報錯。

⑽ C語言 字元串逆序

ch=getchar();//從鍵盤鍵入一個字元
for(i=0; ch!='\n'; i++) {//如果不是回車鍵

a[i]=ch;//輸入第i個=該字元
n++;//數量累加
ch=getchar();//繼續得到一個鍵入的字元直到該字元是回車鍵終止循環
}
打字不容易望採納謝謝。。。

熱點內容
rdp演算法 發布:2025-05-10 21:46:40 瀏覽:917
c語言求素數的方法 發布:2025-05-10 21:46:39 瀏覽:763
戰地5配置最低怎麼設置 發布:2025-05-10 21:44:12 瀏覽:673
microsoftsql2012 發布:2025-05-10 21:43:33 瀏覽:428
電腦買個游戲伺服器 發布:2025-05-10 21:25:15 瀏覽:241
機櫃存儲空間 發布:2025-05-10 21:25:07 瀏覽:267
安卓手機如何修改首屏 發布:2025-05-10 21:17:59 瀏覽:959
緩存關聯替換 發布:2025-05-10 20:56:34 瀏覽:618
開源項目源碼 發布:2025-05-10 20:56:24 瀏覽:36
php文章編輯 發布:2025-05-10 20:56:21 瀏覽:982