C语言 输入一个以回车键结束的字符串(少于80个),删除其中的除英文字母和数字字符以外的其他字符

如题所述

程序比较简单,这里我强调的是gets()函数和scanf()的区别:用gets()函数接收字符串是以换行结束输入的,scanf()函数接收字符串是以空格或者换行结束输入的。

这里应该用gets()函数来接收字符串,下面是我写的程序和运行的结果:

#include <stdio.h>

#include <string.h>

int main()

{

    char s[100];

    int i, t;

    while(1)

    {

        if(gets(s)==NULL) break;

        t=strlen(s);

        for(i=0; i<t; i++)

        {

            if ((s[i]>='0'&&s[i]<='9')||(s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))

                printf("%c", s[i]);

        }

        printf("\n");

    }

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-03
#include <stdio.h>
void main ()
{
char s[80],c;
int i=0;
while((c=getchar())!='\n')
if ((c>='0'&&c<='9')||(c>='A'&&c<='Z')||(c>='a'&&c<='z'))
s[i++]=c;//只存储数字和字母(大小写)
s[i]='\0';
puts(s);
}
第2个回答  推荐于2016-07-25
#include<stdio.h>
#include <string.h>
void fun(char *s,char *p)
{
int j=0;
int i;
int m =strlen(s);
for(i=0;i<m;i++)

{
if((s[i]>='0'&&s[i]<='9')||(s[i]>='A'&&s[i]<='z'))
p[j++] = s[i];
}
p[j]='\0';

}

void main()
{
char s[80];
char p[80];
gets(s);
fun(s,p);

printf("%s",p);

;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网