C语言isalpha()函数

isalpha()函数: 判断字符是否为英文字母, 若是英文字母返回非0
注意:

小写字母返回2 大写字母返回1
不是字母返回 0

示例:
力扣题目 917.仅仅反转字母

给你一个字符串 s ,根据下述规则反转字符串:
所有非英文字母保留在原有位置。
所有英文字母(小写或大写)位置反转。
返回反转后的 s 。

输入:s = "ab-cd"
输出:"dc-ba"

代码:

void swap(char *s,int i, int j){
    char tmp;
    tmp = s[i];
    s[i] = s[j];
    s[j] = tmp;
}

char * reverseOnlyLetters(char * s){
    int length = strlen(s);
    int i = 0, j = length - 1;
    while(i < j){
        if(!isalpha(s[i])){
            i++;
        }else if(!isalpha(s[j])){
            j--;
        }else{
            swap(s, i, j);
            i++;
            j--;
        }
        
    }
    return s;
}
posted @ 2022-02-23 11:19  Do1y  阅读(469)  评论(0编辑  收藏  举报