将字符串中的所有非英文字母的删除后输出该字符串

C语言题目

输入一个字符串,要求将字符串中的所有非英文字母的字符删除后,输出该字符串

解题思路

提取题意的关键词,就是要求输入的是字符串,自然定义数组的时候就要求是字符串类型了(char),再者思考真正核心内容,就是删除非英文字母?那么其实就是保留英文字母了,所以在字符数组遍历的时候只需要考虑保留字母就行了,最后输出。

这里的算法有不少的,就是对于如何组建需要的字符串:

  1. 将遍历到的字符数组保存到某个字符数组中,或者直接输出即可
  2. 拼接字符串,就是记录遍历的字符在字符数组中的位置,用拼接函数将其拼接即可,最后输出
  3. 待补充……

代码实践

此处应用的算法为1

//输入一个字符串,要求将字符串中的所有非英文字母的字符删除后,出出该字符串
#include<stdio.h>
int main(){
    char str[80],a[80];     //定义两个字符数组,前者用于存储输入的字符串,后者则是用于存储得出的字母
    int i,j;                //定义整型变量i,j,前者用于循环遍历,后者用于赋值的数组下标
    scanf("%s",str);        //输入字符串并存入str数组中
    for(i=0,j=0;str[i]!='\0';i++){      //循环遍历字符串str,判断条件就是字符数组的特征,字符数组的最后一个元素是'\0',即结尾标识
        if(str[i]>='A' && str[i]<='Z' || str[i]>='a' && str[i]<='z'){       //判断数组下标为i的元素是否为字母
            a[j++]=str[i];  //是字母就将其存入a数组
        }
    }
    a[j+1]='\0';    //a数组最后一个元素存入字符数组结束标识
    printf("%s\n",a);   //输出a数组
    return 0;
}
© 版权声明
THE END
喜欢就点赞支持一下吧,如果觉得不错或日后有所需要,可以收藏文章和关注作者哦。
点赞5打赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容