【发布时间】:2023-07-15 10:34:01
【问题描述】:
在学校,我正在研究回文 C 程序。我快完成了,但我希望我的程序将“安娜”和“安娜”都标记为回文。我尝试了一些东西,但没有真正奏效。 我的代码:
#include <stdio.h>
#include <string.h>
int main() {
char palindroom[50],a;
int lengte, i;
int woord = 0;
printf("This program checks if your word is a palindrome.\n");
printf("Enter your word:\t");
scanf("%s", palindroom);
lengte = strlen(palindroom);
for (i = 0; i < lengte; i++) {
if (palindroom[i] != palindroom[lengte - i - 1]) {
woord = 1;
break;
}
}
if (woord) {
printf("Unfortunately, %s is not palindrome\n\n", palindroom);
}
else {
printf("%s is a palindrome!\n\n", palindroom);
}
getchar();
return 0;
}
我见过一些人使用 ctype.h 中的 tolower,但我想避免这种情况。
所以我的问题是:如何将字符串中的所有大写转换为小写?
[ps。我可能编码的一些单词可能看起来很奇怪,但那是荷兰语。擦掉一个o就明白了]
谢谢。
【问题讨论】:
-
如果你想做
tolower()的用途,但不使用它,请给出理由。 -
"如何将字符串中的所有上限转换为下限?"您可以使用
strlwr,但我认为它不是标准的 C 库函数。 -
如果不想使用
tolower()的原因是“老师禁止”,那么老师希望您应用您在最近参加的课程中展示的内容。通过阅读教科书的最新章节,你能找到一些有用的东西吗? -
“不使用 tolower”不足以作为解决方案的要求。您需要提供上下文。否则,必须通过猜测来对本地化、范围内情况、边缘情况、错误处理等进行假设。而且很可能会失败。此外,无论 StackOveflow 的老手们可能提出什么建议(即使有各种详细的要求),都可能通过“你是如何提出这个解决方案的,而我教你的内容没有涵盖这个解决方案?”给你带来麻烦。所以我认为这个问题太笼统了,可能还不清楚。
-
@Pablo 的重点可能是让学生有机会认识到您可以添加和减去字符。此外,有时:-) 标准库不 可用。或者也许你必须实现它们 :) 如果你知道如何在没有标准库的情况下做事会派上用场
标签: c string palindrome letters