求助,关于字符数组的一道问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 08:47:01
从键盘输入一个字符串,将其中的非字母字符删除,显示删除后的结果
请用c遍

这个方法不限制字符个数 并且没有用到指针 嘿嘿
#include <stdio.h>
void main()
{
char x;
do
{
scanf("%c",&x);
if((x>64 && x<91) || (x>96 && x<123))
printf("%c",x);
}
while(x != 10);
printf("\n");
getch();
}

这个太简单了,先定义一个字母符号的ASC值的集合,然后把输入的字符串赋于一个变量,循环取这个变量里的每一个字节,再把这个字符的ASC码来比较,不在字母集合中的ASC码都是非字母字符,你去掉就可以了,反之你就连上之前的字母字符,循环结束后就是你想要的结果。

/*
笨办法,简单而有效,下面的代码应该正确吧
*/
#include<stdlib.h>
#include<stdio.h>

int main(int argc,char *argv){
char str[1024];
char str2[1024];
int i,j;
printf(" input: ");
scanf("%s",str);
for(i=0,j=0;i<1024;i++){
char c = str[i];
if('\0' == c)break;
if(('a'<=c && 'z'>=c) || ('A'<=c && 'Z'>=c))str2[j++]=c;
}