C语言题目
输入一个字符串,要求将字符串中的所有非英文字母的字符删除后,输出该字符串
解题思路
提取题意的关键词,就是要求输入的是字符串,自然定义数组的时候就要求是字符串类型了(char),再者思考真正核心内容,就是删除非英文字母?那么其实就是保留英文字母了,所以在字符数组遍历的时候只需要考虑保留字母就行了,最后输出。
这里的算法有不少的,就是对于如何组建需要的字符串:
- 将遍历到的字符数组保存到某个字符数组中,或者直接输出即可
- 拼接字符串,就是记录遍历的字符在字符数组中的位置,用拼接函数将其拼接即可,最后输出
- 待补充……
代码实践
此处应用的算法为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
暂无评论内容