問題:
輸入:「how are you baby-- "
輸出:」woh era uoy --ybab "
#include#include#define swap(a,b) (a)^=(b);(b)^=(a);(a)^=(b)
char* sentencereverse(char*input)
if(*(++r)=='
\0') break
; }
return
inp;
}int
main()
輸出結果:
xu@xu-thinkpad-x61:~/algorithm$ gcc sentencereverse.c
xu@xu-thinkpad-x61:~/algorithm$ ./a.out
input is:1oow lsije -----
test1 result is:woo1 ejisl -----
input is:sdklf -----
test2 result is:flkds -----
總結:一,當函式引數是test2時(注意它宣告時是char * 型別),記憶體做了以下操作:1.在堆上儲存test2指標。2.將其內容:"sdklf "儲存在「常量區」(具體我也不清楚,反正該區域內容不能修改)。找到下面連線,問題解釋的比較清晰:
二,當函式sentencereverse()對陣列char *test2內容修改時,總會報錯「
段錯誤 (核心已轉儲)」。
三,解決方案:在堆上重新開闢新空間進行操作。如上函式中新建陣列inp[ ];
四,當函式引數是test1時(注意是它宣告時是char [ ]型別)就不存在記憶體「段錯誤」問題。其內容儲存在堆上可以直接修改。
深藏功與名!
2019 04 16 倒序取出每個單詞的第乙個字母
encoding utf 8 倒序取出每個單詞的第乙個字母 方法一 倒序取出每乙個單純,然後取出對應單詞的第乙個字母 def flash back letters s re s s.split target str for i in range len re s 1,1,1 倒序的開始一定要減掉1,...
C語言 最後乙個單詞的長度
給定乙個僅包含大小寫字母和空格 的字串 s,返回其最後乙個單詞的長度。如果不存在最後乙個單詞,請返回 0。示例 輸入 hello world 輸出 5分析得 一共有5種不同的情況,分別是 1.全為空格。2.字串最後有空格,並且最後乙個單詞前邊也有空格 例 a bc 3.字串最後有空格,最後乙個單詞前...
最後乙個單詞的長度
給定由大寫,小寫字母和空格組成的字串,返回最後乙個單詞的長度。如果輸入中不存在單詞,返回 000。注意 單詞 是指不包含空格符號的字串 例如 對於字串 hello world 不帶引號 那麼返回的結果是 555 對於字串 abc abc 不帶引號 那麼返回的結果就是 333。輸入格式 輸入僅一行,為...