如何用C语言将字符串中除字母的其他符号删除

建立一个for循环,从下标为0开始逐字检测字符串元素,对应的ASCII码在'a'(97)至'z'(122)之间的是小写字母,在'A'(65)至'Z'(90)之间的是大写字母,是字母的依次存入同一个数组,问题就解决了。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char a[100]="jfk839hfkhd89jl9t5ugifogjshb1783fhdahpp[qhfud",i,j;
    for(j=i=0;a[i];i++)
        if(a[i]>='a' && a[i]<='z' || a[i]>='A' && a[i]<='Z')//判断是否为字母
        //if(a[i]>=97 && a[i]<=122 || a[i]>=65 && a[i]<=90)//这样写也可以
            a[j++]=a[i];
    a[j]='\0';
    printf("%s\n",a);//Look at...
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-27
#include "stdio.h"

void check(char str[])
{
int i=0,j=0;
char ch;
ch=str[i];
while(ch!='\0')
{
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
{
str[j]=ch;
j++;
}
i++;
ch=str[i];
}
str[j]='\0';
}
经本人亲自测试通过,希望can help you 。
(编译环境:Dev c++ 4.9.2)
第2个回答  2010-03-27
int i,j;
int len;
char temp;
for(i=0;i<len;i++)
{
if(!isalpha(s[i]))
{
for(j=i;j<len-1;j++)
{
s[j]=s[j+1];
}
--len;
}
else
continue;
}
len为字符串s[]的长度本回答被网友采纳
相似回答