使用c语言写出代码:有一个字符串,都是ASCII字符,不超过100个,请判断该字符串是否为回文串。若是回文串,输出Yes,否则输出No。注意:回文串是正读反读都相同的字符串,回文串不区分大小写。注意:需要将字符串统一转换成大写或者小写 ,但是本平台不支持非标准ansi函数,不能直接调用strupr(),strlwr()函数。 可以参照下面的函数写个转换大小写的自定义函数,并调用。 void toupr(char *p) //把一个字符串中所有小写字符转换成大写 { int i; for(i=0;*(p+i)!='\0';i++) if(*(p+i)>='a'&&*(p+i)<='z') *(p+i)-=32; }
时间: 2023-12-14 21:36:38 浏览: 199
字符串/字符数组的一系列应用
下面是使用 C 语言编写的判断字符串是否为回文串的代码,包括转换大小写的自定义函数 toupr:
```c
#include <stdio.h>
#include <string.h>
void toupr(char *p) {
int i;
for (i = 0; *(p + i) != '\0'; i++) {
if (*(p + i) >= 'a' && *(p + i) <= 'z') {
*(p + i) -= 32;
}
}
}
int main() {
char str[101];
int i, j, flag = 1;
printf("请输入字符串:");
scanf("%s", str);
toupr(str); // 转换字符串为大写
for (i = 0, j = strlen(str) - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
flag = 0;
break;
}
}
if (flag) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
上述代码中,使用了 toupr 函数将字符串转换成大写,然后使用双指针法判断字符串是否为回文串。如果是回文串,则 flag 的值为 1,否则 flag 的值为 0。最后根据 flag 的值输出 Yes 或 No。
阅读全文