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

字元串反轉c語言

發布時間: 2022-05-21 21:28:47

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];

② c語言的問題字元串反轉

因為你在dest++時,改變了dest的指向的位置,所以沒有輸出正確的結果。

按照你的程序給你修改了一下,請參考。
1 #include <stdio.h>
2 #include <string.h>
#include <malloc.h> // 注意這里:增加使用malloc的頭文件,消除warning
3 main()
4 {
5 char *a = "abc";
6 char *rever(char *dest,const char *src);
7 char *b = (void *)malloc(strlen(a)+1);
memset(b, 0x00, sizeof(strlen(a)+1)); // 注意這里:對malloc的buf進行初始化
8 printf("%s\n", rever(b,a));
9 }

10 char *rever(char *dest,const char *src)
11 {
12 int n;
char *temp = dest; // 注意這里:用來記錄dest的初始地址
13 for (n = strlen(src)-1;n>=0;dest++,n--)
14 *dest = *(src+n);
15 return temp; // 注意這里:返回dest字元串的首地址
16 }

程序給你測試通過。

③ C語言字元串反轉

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

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

字元串按位翻轉可以通過對每個字元按位翻轉實現,首先通過指針偏移或數組下標依次取出字元,然後對單個字元做按位非操作,即~

⑤ 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

載入更多

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

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

⑦ C語言字元串逆轉函數

  1. 只需要將字元數組的前後數據進行交換就行了。


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

    char*reverse(char*x)
    {
    inti,tem,len=strlen(x);
    intn=len/2;
    for(i=0;i<=n;i++)//前後交換數據
    {
    tem=x[i];
    x[i]=x[len-1-i];
    x[len-1-i]=tem;
    }
    returnx;
    }

    intmain()
    {
    charp[]="abcdefghijk";
    printf("relust=%s ",reverse(p));
    return0;
    }

⑧ 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語言)

1、先用字元串數組讀取多行字元串,再挨著逆序反轉輸出即可。

2、常式:

voidmain(void){
charstr1[10];
inti,ln;//增加一個ln計長度吧
charstr2[10]="";//這里改了
charc[10];
gets(str1);
ln=strlen(str1);//增加一句測出你輸入的長度
for(i=0;i<ln;i++){//用實際輸入的長度控制
c[i]=str1[i];
str2[ln-1-i]=c[i];//用實際輸入的長度控制
}
puts(str2);
printf(" ");
}

⑩ C語言反轉字元串怎麼反轉

讀取字元串,瀏覽字元串每一個字元,
如果是空格就輸出空格,
否則就保存當前位置,從當前位置移動到下一個空格或字元尾前,
從當前位置開始反向輸出,直達回到保存的位置
最後輸出回車,結束

//以下是C語言版的,需要的話,可以看看
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define String_MaxSize 10000 //讀入字元串的最大長度

int main()
{
char stringPtr[String_MaxSize]; //保存讀入的字元串
//循環讀取直到文件尾
while(gets(stringPtr))
{
int stringPtr_length = strlen(stringPtr); //字元串的長度
int i;
//循環讀取整段字元串
for(i = 0; i < stringPtr_length; i++)
{
//如果字元為空格
if(stringPtr[i] == ' ')
{
//直接輸出空格
printf(" ");
}
//如果字元非空格
else
{
int tempPos = i; //保存當前i的位置
int j; //代替i進行反向移動
//讀取到下一個空格或字元串尾的前一個位置
while(i < stringPtr_length && stringPtr[i] != ' ')
{
i++;
}
i--;
//輸出單詞
for(j = i; j >= tempPos; j--)
{
putchar(stringPtr[j]);
}
}
}
//輸出回車
printf("\n");
}
//輸出回車
printf("\n");
return 0;
}

熱點內容
查看linux的shell 發布:2025-02-14 01:38:42 瀏覽:988
用於打開ftp連接的應用程序 發布:2025-02-14 01:23:39 瀏覽:706
網站會員注冊源碼 發布:2025-02-14 01:09:45 瀏覽:657
小火山視頻密碼是什麼 發布:2025-02-14 01:09:40 瀏覽:505
我的世界手機創的伺服器電腦能進嗎 發布:2025-02-14 01:08:16 瀏覽:163
eclipseandroid運行 發布:2025-02-14 00:54:57 瀏覽:897
雲伺服器安全策略 發布:2025-02-14 00:54:07 瀏覽:289
小米手機如何更改賬號密碼 發布:2025-02-14 00:48:48 瀏覽:572
我的世界如何導出伺服器 發布:2025-02-14 00:48:39 瀏覽:722
工業伺服器機箱怎麼樣 發布:2025-02-14 00:29:15 瀏覽:86