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

c語言原地翻轉字元串

發布時間: 2022-06-20 09:23:32

A. 求c語言字元串倒置寫法

這樣改就好了:
void fun(char*s)
{
int i,j=0,n;
char t[100];//t不要和s指向同一個字元串,不然後面的賦值操作有點亂套。
n=strlen(s);
for(i=n-1;i>=0;i--)//i==0的時候也要復制過去。
t[j++]=s[i];
for(i=0;i<n;i++)
s[i]=t[i];
s[++i]='\0';
}

B. c語言如何實現字元串的反轉

#include<stdio.h>

void reverse(char s[])

{ int i,j;

char c;

for(i=0; s[i]; i++);

for(i--,j=0; j<i;)

{ c=s[j];

s[j++]=s[i];

s[i--]=c;

}

}

int main()

{ char s[200];

gets(s);

reverse(s);

puts(s);

return 0;

}

C. C語言 反轉字元串

你把char* str="abcdefg";改成charstr[]="abcdefg";

否則str指向的是常量數據區的內存處,值是不能改變的。

D. C語言反轉字元串怎麼反轉

寫一個反轉字元串的函數,用來處理單個字元串的反轉。
在主程序中,拆分每個串,遇到空格時,就調用反轉函數對拆分出來的串進行反轉

E. C語言中如何實現字元串的反轉

#include<stdio.h>
#include<string.h>

string_change(char*p)
{
inti,len;
chartemp;
len=strlen(p);

//printf("%d ",len);
//testprintf("%d ",len);

for(i=0;i<(len/2);i++)
{
temp=p[i];
p[i]=p[len-1-i];
p[len-1-i]=temp;
}
}

intmain(void)
{
chara[20]="1234567890";

printf("%s ",a);
string_change(a);
printf("%s ",a);

return0;
}

兩個明顯的誤解:

  1. char* a="12***"; 這樣定義是錯誤的。這樣 a指向字元串常量的指針。而字元串常量是不能改變的。所以停止運行。

  2. c中數組是從0開始編號的。所以字元串最後一個字元是a[len-1];

F. C語言 字元串反轉代碼看不懂! 幫助詳細解釋,謝謝!!

*p2
=
str-1
while(*++p2);
這兩句是為了讓指針p2移動到字元結尾,即null字元。其中*p2
=
str-1
是為了配合後一句中while(*++p2)的。因為*++p2是先自增加1。這樣當開始執行while(*++p2)是++p2正好指向字元串的第一個字元。
p2
-=1;
這句的意思是,while(*++p2)結束後,p2隻需了字元串結尾的null位元組,執行p2
-=1後,p2指向了字元串最後一個有效字元(null前面一個字元);
while(p1

評論
0

0

0

載入更多

G. c語言如何實現字元串按位翻轉

如果所說的是字元串的反轉操作是很方便的,只要使用一個輔助單元就可以實現:
char s[200],i,j,c;
gets(s);
for(j=0;s[j];j++);
for(i=0;i<j;i++,j--)
{c=s[i];s[i]=s[j];s[j]=c;}
puts(s);

H. c語言的問題字元串反轉

rever()函數修改如下:

char *rever(char *dest,const char *src)
{
int n = strlen(src)-1;
for (dest += n,*(dest+1)=0;n>=0;dest--,n--)
*dest=*src++;
return dest+1;
}

I. c語言,,反轉字元串,沒想通這道題的原理sos求救謝謝

程序本身並沒有錯,你具體可以實際操作一下。這是利用系統棧的方法進行遞歸的操作,當讀到的字元不是回車符的時候就遞歸調用自己(這次讀到的字元會到本次遞歸返回後再輸出),一直讀到回車符的時候就不再遞歸,這時直接返回,然後就把最後一次讀到的字元進行輸出,然後再次返回就列印倒數第二個讀到的字元,照此類推,一直到最前讀入的字元,最後進行輸出。

J. c語言中,字元反轉,怎麼做(還沒學指針)

你記錄兩個值:
1、單個字元串的開始和結束
2、比如例子中的I Love You,第一個字元串I開始和結束都是0,就不用換
3、然後到了空格(非字母也一樣)也不用管繼續往下走
4、到Love就是開始是2,結束時5,就把這個值傳給一個交換函數
5、在交換函數中,把2-5 3-4轉換,然後繼續往下走....
6、這樣循環到尾就好了。