【方法一】

創(chuàng)新互聯(lián)建站主要業(yè)務(wù)有網(wǎng)站營(yíng)銷(xiāo)策劃、網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、小程序定制開(kāi)發(fā)、H5開(kāi)發(fā)、程序開(kāi)發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶(hù)當(dāng)客戶(hù),還把客戶(hù)視為我們的合作伙伴,在開(kāi)展業(yè)務(wù)的過(guò)程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、全網(wǎng)整合營(yíng)銷(xiāo)推廣資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶(hù)服務(wù)和保障體系。
//也是最簡(jiǎn)單的有點(diǎn)投機(jī)
#include stdio.h
int main(){
char str[]="ABCD";
int i;
for(i=3;i=0;i--) printf("%c",str[i]);
return 0;
}
【方法二】
/*
用指針的,將第一個(gè)與最后一個(gè)互換,第二個(gè)與倒數(shù)第二個(gè)互換……直到逆置完成
*/
#include stdio.h
#include string.h
int main(){
char str[]="ABCD",*start,*end,t;
int len,i;
len=strlen(str);
start=str;
end=str[len-1];
while(startend){
t=*start;
*start=*end;
*end=t;
start++;
end--;
}
printf("REVERSED:\n");
for(i=0;str[i];i++) printf("%c",str[i]);
return 0;
}
【方法三】
//用堆棧的性質(zhì)來(lái)實(shí)現(xiàn)
#include stdio.h
#include string.h
#include stdlib.h
#define MAXSTACK 100
char pop(struct stack *stk);
void push(char ch,struct stack *stk);
int empty(struct stack *stk);
struct stack{
int top;
char str[MAXSTACK];
};
int main(void)
{
int i,len_str;
char str[MAXSTACK];
struct stack s;
s.top=-1;
printf("\nInput the string please:");/*輸入你要逆置的字符串e.g.“ABCD”*/
gets(str);
len_str=strlen(str);
for(i=0;ilen_str;i++)
push(str[i],s);
printf("The disorder is:");
for(i=0;ilen_str;i++){
if(!empty(s))
printf("%c",pop(s));
}
getch();
return 0;
}
char pop(struct stack *stk){
return stk-str[stk-top--];
}
void push(char ch,struct stack *stk){
if(stk-top==MAXSTACK-1){
printf("\nOVERFLOW!\n");
exit(1);
}
else stk-str[++(stk-top)]=ch;
return;
}
int empty(struct stack *stk){
return (stk-top==-1);
}
還可以用遞歸的思想來(lái)解決該問(wèn)題,這里就不多說(shuō)了……
讀取字符串,瀏覽字符串每一個(gè)字符,
如果是空格就輸出空格,
否則就保存當(dāng)前位置,從當(dāng)前位置移動(dòng)到下一個(gè)空格或字符尾前,
從當(dāng)前位置開(kāi)始反向輸出,直達(dá)回到保存的位置
最后輸出回車(chē),結(jié)束
//以下是C語(yǔ)言版的,需要的話(huà),可以看看
#includestdio.h
#includestdlib.h
#includestring.h
#define String_MaxSize 10000 //讀入字符串的最大長(zhǎng)度
int main()
{
char stringPtr[String_MaxSize]; //保存讀入的字符串
//循環(huán)讀取直到文件尾
while(gets(stringPtr))
{
int stringPtr_length = strlen(stringPtr); //字符串的長(zhǎng)度
int i;
//循環(huán)讀取整段字符串
for(i = 0; i stringPtr_length; i++)
{
//如果字符為空格
if(stringPtr[i] == ' ')
{
//直接輸出空格
printf(" ");
}
//如果字符非空格
else
{
int tempPos = i; //保存當(dāng)前i的位置
int j; //代替i進(jìn)行反向移動(dòng)
//讀取到下一個(gè)空格或字符串尾的前一個(gè)位置
while(i stringPtr_length stringPtr[i] != ' ')
{
i++;
}
i--;
//輸出單詞
for(j = i; j = tempPos; j--)
{
putchar(stringPtr[j]);
}
}
}
//輸出回車(chē)
printf("\n");
}
//輸出回車(chē)
printf("\n");
return 0;
}
只需要將字符數(shù)組的前后數(shù)據(jù)進(jìn)行交換就行了。
#include?stdio.h
#include?string.h
char*?reverse(char?*x)
{
int?i,?tem,?len?=?strlen(x);
int?n?=?len?/?2;
for?(i?=?0;?i?=?n;?i++)??//?前后交換數(shù)據(jù)
{
tem?=?x[i];
x[i]?=?x[len?-?1?-?i];
x[len?-?1?-?i]?=?tem;
}
return?x;
}
int?main()
{
char?p[]?=?"abcdefghijk";
printf("relust?=?%s\n",?reverse(p));
return?0;
}
#includestdio.h
void reverse(char s[])
{ int i,j;
char c;
for(i=0; s[i]; i++);
for(i--,j=0; ji;)
{ c=s[j];
s[j++]=s[i];
s[i--]=c;
}
}
int main()
{ char s[200];
gets(s);
reverse(s);
puts(s);
return 0;
}
#includestdio.h
#includestring.h
string_change(char?*?p)
{
int?i,len;
char?temp;
len?=?strlen(p);
//printf("%d?\n",?len);
//test?printf("%d\n",len);
for(i=0;?i(len/2);?i++)
{
temp?=?p[i];
p[i]?=?p[len-1-i];
p[len-1-i]?=?temp;?
}
}
int?main(void)
{
char?a[20]?=?"1234567890";
printf("%s\n",a);
string_change(a);
printf("%s\n",a);
return?0;
}
兩個(gè)明顯的誤解:
char* a="12***"; 這樣定義是錯(cuò)誤的。這樣 a指向字符串常量的指針。而字符串常量是不能改變的。所以停止運(yùn)行。
c中數(shù)組是從0開(kāi)始編號(hào)的。所以字符串最后一個(gè)字符是a[len-1];
分享標(biāo)題:字符串反轉(zhuǎn)c語(yǔ)言庫(kù)函數(shù),編寫(xiě)一個(gè)實(shí)現(xiàn)字符串反轉(zhuǎn)的函數(shù)
文章路徑:http://chinadenli.net/article4/dsgipoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航、App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、搜索引擎優(yōu)化、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)