我一直試圖在C中編寫一個檢測後記的函數。該方案目前看起來如下:將C中的字符串拆分爲不同的部分
#include <stdio.h>
#include <string.h>
int main()
{
char palindrome[24]; int palength; int halflength;
gets(palindrome);
palength = strlen(palindrome);
halflength = palength/2;
printf("That string is %u characters long.\r\n", palength);
printf("Half of that is %u.\r\n", halflength);
return 0;
}
現在它檢測到字符串的長度,同時也顯示了一半的即是。這只是爲了確保它正在工作,我認爲它應該是。該函數的其餘部分應該做些什麼(如果可能的話)是從「半長」中取出整數,並使用它從字符串的開頭和結尾取出該字符數量並將它們存儲在單獨的字符串中。從那裏我可以比較那些字符,並且如果字符串確實是迴文,那麼能夠返回真或假。
TL; DR - 是否有可能在字符串的前端和末尾放置一定數量的字符(在本例中爲整數「halflength」),並將它們存儲在單獨的變量中。請閱讀以上,瞭解我正在嘗試做什麼的更多信息。
P.S. - 我知道不要使用gets(),但不想寫一個函數來截斷fgets()的關閉。
您不需要單獨的字符串副本來檢測迴文。提示:使用指針遍歷字符串的字符,並且可以向前和向後迭代。 – 2010-11-21 06:22:19
爲什麼不這樣做的經典方式,即從字符串的開頭迭代到中間點,與最後的相應字符進行比較? – 2010-11-21 06:22:20
謝謝你,沒有想到這樣做的事情。只是想爲了好玩而做,而我上面開始的是我的第一個想法。 – austinprete 2010-11-21 06:26:19