输入一个字符串,过滤此串,只保留串中小写字母字符。要求用while循环实现

 

用ascii判断,字母>='a' and 字母<='z‘的保留就可以了。

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    char str[100], *p = str, *q = str, cnt = 0;
 
    scanf("%s", str);
 
    while (*p != '\0') {
 
        if (*p >= 'a' && *p <= 'z') {
 
            *q = *p;
 
            cnt++;
 
            q++;
        }
 
        p++;
    }
 
    *q = '\0';
 
    printf("新字符串:%s\n", str);
    printf("字母个数:%d\n", cnt);
 
    system("pause");
    return 0;
}

 

void fun(char *s)
{
    char *p = new char[strlen(s)+1];
    char  *ps = s;
    char  *ps2 = p;
    while (*ps != '\0')
    {
        if (*ps >= 'a' && *ps <= 'z')
        {
            *ps2++ = *ps;
        }
        ps++;
    }
    *ps2 = '\0';
    strcpy(s, p);
    delete [] p;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632