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

c語言顛倒字元串

發布時間: 2023-08-30 00:48:43

c語言 把字元串前後倒置

我的演算法是原地轉置。原地轉置有個問題,就是不能對靜態存儲的字元串操作。比如char
*s="abc";reverse(s);就會出錯。樓上的幾位的演算法不是原地轉置,可以對靜態字元串操作。
void
reverse(char
*s)
{
char
*p=s;
while(*p!='\0')
p++;
p--;
char
*q=s;
char
temp;
while(p>q)
{
temp=*p;
*p=*q;
*q=temp;
}
}

Ⅱ 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;
}

Ⅲ c語言 將一個輸入的字元串的內容顛倒後輸出

可以直接使用庫函數strrev(), 需要包含頭文件string.h

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

intmain()
{
charbuf[1024];
scanf("%s",buf);
strrev(buf);
printf("%s ",buf);
return0;
}

strrev不是C語言的函數,自己用指針來實現也非常簡單。

char *_strrev(char *str)

{

char *f = str, *l = str + strlen(str), ch;

while(f<l) {ch = *f; *f++ = *(--l); *l = ch;}

return str;

}

wchar_t *_wcsrev(wchar_t *wcs)

{

wchar_t *f = wcs, *l = wcs + wcslen(wcs), ch;

while(f<l) {ch = *f; *f++ = *(--l); *l = ch;}

return wcs;

}

對於多字元的漢字的調換次序,要想得到正確的結果,必須先將多字元轉換為寬字元,調換次序後再轉化為多字元。

熱點內容
編程課v 發布:2025-02-04 08:45:00 瀏覽:103
模擬器能有手機腳本么 發布:2025-02-04 08:39:50 瀏覽:755
android顯示html圖片 發布:2025-02-04 08:35:31 瀏覽:791
如何查學信網賬號及密碼 發布:2025-02-04 08:33:55 瀏覽:502
linux32位jdk 發布:2025-02-04 08:33:55 瀏覽:246
康佳伺服器連接失敗是怎麼回事 發布:2025-02-04 08:18:51 瀏覽:916
編譯編譯有什麼 發布:2025-02-04 08:05:52 瀏覽:735
讓外網訪問內網伺服器 發布:2025-02-04 08:02:20 瀏覽:783
奶塊腳本菜地 發布:2025-02-04 07:46:35 瀏覽:238
條形碼識別源碼 發布:2025-02-04 07:45:55 瀏覽:457