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);

;
}

C语言 输入一个以回车键结束的字符串(少于80个),删除其中的除英文字母和...
程序比较简单,这里我强调的是gets()函数和scanf()的区别:用gets()函数接收字符串是以换行结束输入的,scanf()函数接收字符串是以空格或者换行结束输入的。这里应该用gets()函数来接收字符串,下面是我写的程序和运行的结果:include <stdio.h> include <string.h> int main(){ char s[100];int ...

输入一个以回车结束的字符串(少于80个字符),删除其中除英文字母和数字字...
思路就是首先通过gets()函数获取字符串s,再用一个新字符数组t,保存经过删除后的字符串,并用puts()函数输出它。接着我们用首尾两端逐个字符比较的方法来看t是否为回文,这里只要有一对字符不匹配就说明不是回文了(如abccda,b和d不配对)代码如下: #include <stdio.h> include <string.h> include...

C语言题目。。输入一个以回车结束的字符串(少于80 个字符),滤去所有的...
return 0;}

输入一个以回车结束的字符串(少于80个字符),滤去所有的非十六进制字符后...
include <stdio.h> void main(){ char s[80];int i,x;gets(s);x=0;i=0;while(s[i]){ if (s[i]<='9' && s[i]>='0') x=x*16 + s[i] - '0';else if (s[i]<='F' && s[i]>='A') x=x*16 + 10 + s[i] - 'A';else if (s[i]<='f' && s[i]>...

输入一个以回车符结束的字符串(少于80个字符),统计并输出骑宠大写辅音字 ...
#include<stdio.h> #include<string.h> int main(void){ chara[1000];gets(a);//gets函数本身就是以回车符结束;int count=0;//计数器设置为0 for(inti=0;a[i]!='\0';i++){//从头到尾遍历,如果是数组,计数器++ if(a[i]>='0'&&a[i...

求C语言程序,高手请进...
\/*1.输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串 原字母 对应字母 A Z B Y C X D W X C Y B Z A*\/ \/*#include <stdio.h> void main(){ char str[80];char a;int i=0;s...

C语言编程 输入一个以回车键结束的字符串(少于80个字符)。输出其中所...
printf("Input a string:");\/\/getchar();这一句的getchar不要,如果有这一句,你输入的字符串中的第一个字母就被它所获取,str中是从第二个字母开始保存

输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符转...
{ int i,s;改为{ int i,s=0;if(str[i]<=’0’|| str[i]>=’9’)改为if(str[i]>='0' && str[i]<='9')

...字符,再输入一个以回车结束的字符串(少于80个字符)
结论:在使用%c格式输入字符时,需要注意的是,输入字符后必须以回车键结束,这可能会影响到下一个输入操作。一个推荐的输入方法是使用scanf函数,例如scanf("%c%s",a,str),这样可以避免因空格导致的输入中断。接下来是一个简单的C++程序示例,它展示了如何接收用户输入的字符串,剔除大写字母,并输出...

编程,输入一个以回车结束的字符串(少于80个字符)。
int num=0;\/\/用来接收总字符数。int NewNum=0;\/\/用来接收新字符数。int nChar;\/\/用来接收每个字符的ASCII码值。gets(oper);\/\/用户输入字符串,注意!这里不能用cin语句,因为cin会遇到空格停止。for (int m=0;m<80;m++){ if (oper[m]=='\\0')\/\/字符串结尾符为'\\0'。{ num=m;} }...

相似回答