C语言问题:如何从一个由字母和数字组成的字符串中提取出相应的字母?

比如输入任意一个字符串,input: Cat808her_+in_+e87。Output 应当为: Catherine 。求教代码实现的过程~谢谢了。

#include <stdio.h>

int main(int argc, char const *argv[])
{
    char line[1024] = "\0"; // <--- 最大1023个字符,可按需要修改
    int i;

    gets(line); // <--- 读入一行字符串,存入数组line中
    for (i = 0; i < sizeof(line); ++i) { // <-- 按字符逐个判断
        // a~z, A-Z, 才输出
        if ( (line[i] >= 'a' and line[i] <= 'z') ||
           (line[i] >= 'A' and line[i] <= 'Z') )
            printf("%c",line[i]);
    }
    printf("\n");
    return 0;
}

运行:

Cat808her_+in_+e87
Catherine

追问

太谢谢啦~~只不过我运行的时候需要把 if 条件句里的 and 都要改成 "&&" 才能运行出来。灰常感谢`(*∩_∩*)′

追答

抱歉啊,忘了改我的环境,and已被宏过了(g++)。 &&才是标准的c。

温馨提示:答案为网友推荐,仅供参考