为什么我的回文功能对C中的空格不起作用?

问题描述 投票:-1回答:4

[我编写了回文函数,对于不认识的人,这意味着该函数接受一个词/短语/句子,如果该词/短语/句子与相同的字符串相反,则返回true。

由于某种原因,我的函数仅适用于没有空格的情况。

[isPalindrome("madam")返回正确的true

isPalindrome("nurses run")返回[[0]正确的false

这里是功能:

#include <stdbool.h> bool isPalindrome(char* str){ char* ptr; char* aux; ptr = str; while (*ptr != '\0') { ++ptr; } --ptr; for (aux = str; ptr >= aux;) { if (*ptr == *aux) { --ptr; aux++; } else{ break; } } if (aux > ptr){ return true; } else{ return false; } }

呼叫/驱动程序代码:

printf("Question 6a: %s\n", isPalindrome("nurses run") ? "true" : "false"); // prints false - not expected printf("Question 6b: %s\n", isPalindrome("madam") ? "true" : "false"); // prints true as expected
有什么方法可以容纳原始字符串中的空格?

我编写了回文功能,对于不认识的人来说,这意味着该功能接受一个词/短语/句子,如果该词/短语/句子是相同的字符串,则返回true。对于...

c palindrome
4个回答
0
投票

0
投票
如果您不考虑字符串中大小写字母的可能性,则"testset"将是回文,而"tEstset"则不是。

0
投票
奇怪的是,执行相同的操作,但不触摸确切的中间元素(结果将相同)

^至于“遍历”,我知道您不需要空格,但是您可以创建一个没有空格的临时字符串。您知道字符串的最大大小,因此可以进行分配/分配。


0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.