(山理工)PTA实验九:7-19 sdut-C语言实验-回文串的判断(2023)

代码源自CSDN上一位大佬的正确答案,十分感谢给予的开导。在此浅陋地对其进行了可读性优化和注释。

1.参考代码与解析

/*这道题有一个很不容易做对的测试点:"只考虑字母字符,字母的大小写没有区别。" */




#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main(){
    char str1[1000];           
    char str2[1000];                         //用于存储处理后的字符串
    gets(str1);




    int length = strlen(str1);
    int sub = 0;                            //"sub":下标——用于追踪处理后字符串的下标
    for(int i=0;i<length;i++){              //遍历str1字符串,将字母字符复制到str2数组中(我们取大写字母来统一,将小写字母化为大写字母)
        if(isupper(str1[i])){               //"isupper"的函数作用:判断是否为大写字母
            str2[sub++] = str1[i];
        }
        else if(islower(str1[i])){          //"islower"的函数作用:判断是否为小写字母
            str2[sub++] = str1[i] - 32;     //大小写字母ASCII码差32,将小写字母转换为大写字母
        }
    }
    str2[sub] = '\0';                       //在处理后字符
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值