如题所述
程序比较简单,这里我强调的是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);
}
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);
;
}
#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);
;
}