Re: [問題] 反轉字串裡面的字元
※ 引述《famayo (砝碼)》之銘言:
: 使用語言是C
: 想請問一下假如我要把"how are you"
: 反轉成"you are how" 我該怎麼做呢
: 目前我有個想法
: 就是用字串陣列來儲存strtok分解這句子的結果
: 之後再將字串陣列反轉過來
Q_Q
我先承認 i am so poor ~><~
請不要把以下 code 用於啟動核彈之類的地方
#include <stdio.h>
#include <string.h>
void swapChars(char * ,char * );
void swap(char * ,int unsigned ,int unsigned );
void swap(char * );
void swapChars(char * a,char * b) {
(* a) ^= (* b);
(* b) ^= (* a);
(* a) ^= (* b);
}
void swap(char * chars,int unsigned iBegin,int unsigned cSize) {
for (unsigned int i = 0;i < (cSize / 2) ;++ i) {
swapChars((chars + i + iBegin),(chars + iBegin + cSize -1 - i));
}
}
void swap(char * chars) {
int unsigned toaolSize = strlen(chars);
int unsigned cBegin = 0,cSize = 0;
swap(chars,0,toaolSize);
for (unsigned int i = 0,iEnd = toaolSize;i < iEnd;++ i) {
switch(* (chars + i)) {
case ' ':
cBegin = i + 1;
cSize = 0;
break;
default:
++ cSize;
if (i == iEnd - 1) {//last?
swap(chars,cBegin,cSize);
} else if (i + 1 <= iEnd - 1) {//0~n
if (* (chars + i + 1) == ' ') {
swap(chars,cBegin,cSize);
} else {
}
}
break;
}
}
//01234567890
//uoy era woh
}
好啦~我猜的 主要是關於那上色的地方的觀念吧?
不用暫存temp
不過完全不用應該是不可能吧? 至少還有要判斷loop要跑多長之類的
寫code當然完全不會這樣寫 ~><~ 這只是好玩
因為左轉之後我就 忘記這段東西是在寫啥鬼了 -.-
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.171.125.92
→
10/23 18:13, , 1F
10/23 18:13, 1F
→
10/23 18:21, , 2F
10/23 18:21, 2F
→
10/23 19:15, , 3F
10/23 19:15, 3F
→
10/23 19:16, , 4F
10/23 19:16, 4F
→
10/23 22:19, , 5F
10/23 22:19, 5F
→
10/24 01:07, , 6F
10/24 01:07, 6F
推
10/24 04:33, , 7F
10/24 04:33, 7F
推
10/25 12:14, , 8F
10/25 12:14, 8F
→
10/25 12:18, , 9F
10/25 12:18, 9F
推
10/25 12:48, , 10F
10/25 12:48, 10F
→
10/25 12:52, , 11F
10/25 12:52, 11F
推
10/25 13:43, , 12F
10/25 13:43, 12F
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
12
37
以下文章回應了本文:
問題
7
15
完整討論串 (本文為第 3 之 7 篇):
問題
12
37
問題
5
21
問題
4
12
問題
7
15
問題
7
13