请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。 fun函数原型:int fun(char *str);完整代码
时间: 2024-02-03 14:12:16 浏览: 74
完整代码如下:
```c
#include <stdio.h>
#include <string.h>
int fun(char *str);
int main()
{
char str[100];
scanf("%s", str);
if (fun(str)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
int fun(char *str)
{
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0;
}
}
return 1;
}
```
在 `main` 函数中,首先读入一个字符串 `str`,然后调用 `fun` 函数来判断该字符串是否为回文,如果是,则输出 "YES",否则输出 "NO"。
在 `fun` 函数中,首先计算字符串的长度,然后从字符串的两端开始比较,如果有任何一个字符不相同,就说明该字符串不是回文,返回 0;如果整个字符串都被比较完了,都没有发现不同的字符,就说明该字符串是回文,返回 1。
相关问题
请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。
这是一个经典的字符串处理问题,我们可以创建一个名为`fun`的函数来完成这个任务。下面是一个用Python编写的示例:
```python
def is_palindrome(s):
# 去除字符串中的空格,并转为小写,便于比较
s = ''.join(c for c in s if c.isalnum()).lower()
# 比较字符串与其反转是否相等
return s == s[::-1]
def main():
input_str = input("请输入一个字符串: ")
result = is_palindrome(input_str)
if result:
print("yes")
return 1
else:
print("no")
return 0
if __name__ == "__main__":
main()
```
这个`is_palindrome`函数首先去除字符串中的非字母数字字符并将所有字符转换为小写。然后,它通过切片操作`s[::-1]`获取字符串的反转版本,若两者相等,则说明是回文。
请编写程序,该函数的功能是:判断字符串是否为回文。若是则函数返回1,主中输出 YES;否则返回0,主函数中输出 NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。
以下是代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int is_palindrome(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0;
}
}
return 1;
}
int main() {
char str[101];
cin >> str;
if (is_palindrome(str)) {
cout << "YES" << endl;
return 1;
}
cout << "NO" << endl;
return 0;
}
```
输入一个字符串,然后调用 `is_palindrome` 函数判断是否是回文,最后输出结果。如果是回文就返回 `1`,否则返回 `0`。
阅读全文