有一個簡單的問題。字符串迴文功能
所以我試圖在我的「初學者」程序之一中設計一個迴文函數。
對於那些不知道迴文是什麼,基本上它是一組字符(通常是一個字,但也可能是數字 - 雖然在這種情況下是特定的詞),它是拼寫相同的方式向後和向前。迴文的
示例 - 哇,哈哈,aaafaaa,...
所以你得到了點。於是我開始與我的功能
int palindrome(char input[]){
所以我的推測是,在理想情況下我會希望通過與指數串運行,並通過信函進行比較信。
int palindrome(char input[]){
int start = 0, length = 0, end;
/* Until we reach end of the word */
while (input[start++] != '\0'){
length++;
for(start = 0, end = length - 1; start = length/2; end--){
/*If they do not match, return 0 */
if (input[start] != input[end]){
return 0;
break;
}
}
}
return 1;
}
這就是我的迴文函數的樣子。現在我只想檢查標準stdin的用戶輸入。
所以我的主要功能如下所示
int main(){
char uInput[30];
/* Welcome user */
printf("Hello, please enter some text \n);
scanf("%29s", uInput);
if palindrome(uInput){
printf("The word: %s is a palindrome \n", uInput);
}
else {
printf("The word: %s is not a palindrome \n", uInput);
}
return 0;
}
所以非常簡單的代碼存在,不幸的是,我的結果是
無論它是否是迴文序列,都可以使用「這個詞(字)不是迴文」
。
所以我的功能可能完全有問題。另外我知道這可以通過其他庫如string.h和其他庫來完成,但我個人更喜歡這樣做,因爲它是一種練習形式,而不是使用預定義的函數。
所以是的,我有一個強烈的懷疑,我沒有在函數中正確使用我的返回值,但我不完全確定它們的實際錯誤是什麼。
你不需要在'for'循環中移動'start'嗎? –
'如果迴文(uInput){'沒有編譯器給出這個警告嗎? – ameyCU
發佈你已經測試過的真實代碼,你在這裏會給出各種編譯錯誤。 – interjay