C语言任务描述 本关任务:不使用string.h,编写函数,判断一个字符串是否是回文。在主函数中输入一个字符串,调用自定义函数,输出结果。所谓回文是指顺读和倒读都一样的字符串。如“XZYKYZX”是回文。 测试说明 平台会对你编写的代码进行测试: 测试输入:abcba 预期输出:是回文!
时间: 2024-03-23 18:35:54 浏览: 75
好的,以下是一个不使用string.h的函数,检查一个字符串是否是回文的方法:
```c++
#include <stdio.h>
#include <stdbool.h>
bool isPalindrome(char* str) {
int i = 0, j = 0;
while (str[j] != '\0') {
j++;
}
j--;
while (i < j) {
if (str[i] != str[j]) {
return false;
}
i++;
j--;
}
return true;
}
int main() {
char str[100];
printf("输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("是回文!\n");
} else {
printf("不是回文!\n");
}
return 0;
}
```
在上面的代码中,我们使用了两个指针,一个从字符串的开头向后移动,另一个从字符串的末尾向前移动。我们比较这两个指针所指向的字符是否相同,如果不同,则该字符串不是回文。如果遍历完整个字符串,两个指针都没有发现不同的字符,则该字符串是回文。
相关问题
C语言任务描述 本关任务:编写函数,判断一个字符串是否是回文。在主函数中输入一个字符串,调用自定义函数,输出结果。所谓回文是指顺读和倒读都一样的字符串。如“XZYKYZX”是回文。 测试说明 平台会对你编写的代码进行测试: 测试输入:abcba 预期输出:是回文!
好的,你的问题是关于 C 语言编写回文判断函数的。下面是一个示例代码,你可以参考一下:
```c
#include <stdio.h>
#include <string.h>
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[100];
printf("请输入一个字符串: ");
scanf("%s", str);
if (is_palindrome(str)) {
printf("是回文!\n");
} else {
printf("不是回文!\n");
}
return 0;
}
```
这个程序中,我们定义了一个叫做 `is_palindrome` 的函数,用来判断一个字符串是否是回文。这个函数接受一个字符串作为参数,返回一个整数值,如果这个字符串是回文,则返回 1,否则返回 0。
在 `main` 函数中,我们首先读入一个字符串,然后调用 `is_palindrome` 函数判断这个字符串是否是回文,并输出相应的结果。
希望这个示例代码能够帮到你!
c语言编写函数判断一个字符串是否为回文运用指针函数并判断输入字符串是否为回文不使用bool
在C语言中,可以使用指针来判断一个字符串是否为回文。回文是指正读反读都一样的字符串,例如"madam"、"racecar"等。这里我们不使用布尔类型,而是通过比较字符来实现。下面是一个简单的函数示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void is_palindrome(char *str);
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 防止换行符
input[strcspn(input, "\n")] = '\0'; // 移除换行符
if (is_palindrome(input)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
// 指针函数判断回文
void is_palindrome(char *str) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) { // 当两个指针指向的字符相等,继续向中间移动
if (str[start] != str[end]) {
return; // 如果不相等,直接返回,不是回文
}
start++;
end--;
}
printf("%s is a palindrome (using pointers)\n", str);
}
```
在这个例子中,`is_palindrome`函数接受一个字符串指针作为参数,通过两个指针分别从字符串的开始和结束位置向中间移动,并检查对应位置的字符是否相等。如果任何时候发现不相等,则立即返回非回文;当所有字符都匹配时,说明它是回文。
阅读全文
相关推荐













