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;
}
兩個明顯的誤解:
char* a="12***"; 這樣定義是錯誤的。這樣 a指向字元串常量的指針。而字元串常量是不能改變的。所以停止運行。
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、這樣循環到尾就好了。