![]() |
C語言,倒轉字串,有沒有更好的寫法?
題目是,由鍵盤輸入一個字串,將字串以前後顛倒的順序印出來,舉例來說,輸入的字串為"Hello",輸出即為"olleH"以下是小弟打的程式碼,請問有沒有更好的寫法?煩請賜教!謝謝!!!
語法:
#include <stdio.h> |
問題點主要是在交換的方法,如頭尾交換法,泡沫交換法之類
泡沫交換法 語法:
int main(int argc, char *argv[]) ![]() 頭尾交換法 語法:
int main(int argc, char *argv[]) ![]() |
您的原始碼,迪西看不太懂,且迪西爛爛的 DEV-C 無法編譯
重新整理排版過您的原始碼之後 ... 語法:
#include <stdio.h> 發現幾個怪怪的地方 1. 語法:
i=0; 就是會把 "\0" 給複製到前面去,當用 printf ("%s") 的標準化格 式顯示時,就會顯示不出來 ...,這是很明顯的邏輯錯誤,程式碼 乍看之下是對的但,實際運作是錯得,因此後面不得已只好用字元 列印的方式印出來 語法:
for (j=0;j<=my_strlen(a);j++) 因此正確的作法式,在測量字串的長度時,要把 "\0" 字串結尾要排除 計算 ... 語法:
int my_strlen(char *a) 簡單的說就是,當程式在處理字串的內容時 "\0" 的字串結尾要先排除 最後補在字串的最後面表示字串的結束。 2. Function 的宣告,若是要把 Function 程式碼,放到 main 後面 則一定要這樣宣告,而不是 int my_strlen(); ,連同那個 () 裡面 的也要有 int my_strlen(char *a); ,不然某些編輯器容易出錯... ,正確如下: Function a (XXX); main() { ------ } Function a (XXX) { ------ } 或是 Function a (XXX) { ------ } main() { ------ } 3. 那個抓字串長度的方式,寫得很好,不過依據正確的說法多算了 "/0" 的字元結尾,所以錯了,可以用 strlen 字串長度的量測指令,該指令在 string.h 中,需要 #include <string.h> 第一次修改的如下: 語法:
#include <stdio.h> 第二次使用 strlen 函數式的修改的如下: 語法:
#include <stdio.h> |
謝謝getter,小弟以後會注意排版和註解,不過在下仍有一個疑問,程式碼如text[j]^=text[j+1]^=text[j]^=text[j+1];中^=是什麼意思?小弟找書上,好像找不到,煩請賜教!?
|
引用:
語法:
運算元 講的 ... 剛好老師看到某位同學的程式碼用 ^= 來做英數字元互換,並做講解 ... 原本是這樣的 語法:
使用 ^= 一般變數交換 不過某些類型的資料或是某些 windows SP 環境下 ^= 字元互換 會怪怪的 ... 導致資料或結果不正確 ... 至於使用變數的方式就沒辦法一行化了 ...,不過變數的話依類型宣告,結果 會很穩定的。 |
題目是 "由鍵盤輸入一個字串,將字串以前後顛倒的順序印出來"
PHP 語法:
|
所有時間均為台北時間。現在的時間是 05:59 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *