char a[100],b[100]=""; gets(a); int i,j=0; for(i=0;i<strlen(a);i++) {if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z') b[j++]=a[i];} b[j]=0; printf("%s 字符总数:%d",b,strlen(b));
楼上说的不错到百度去科普了一下发现了一个小问题 原型:extern char *strlwr(char *s);用法:#include <string.h> 功能:将字符串s转换为小写形式 说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。注意事项:在Linux的编译器中,有可能会编译不通过。替代函数:include<ctype.h...
你的循环循环了100次啊,但你输入的字符串却没有这么长,所以没有赋值的那一部分算入其他中了。应该这样写 for(i=0;a[i]!='\0';i++)
include<stdio.h> include<string.h> void main(){ char a[40];int i=0;puts("请输入字母:(算上空格在内不能超过40个字符)");gets(a);puts("提取后:");while(a[i]!='\0'){ if(a[i]==32){ i++;continue;} printf("%c\n",a[i]);i++;} } 有点麻烦,不过可以达到目...
先定义一个二维数组,把关键字放在里面,然后使用strstr函数逐个查。
原题链接:C语言考试练习题_保留字母题目描述: 编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 要求输入一个长度小于80的字符串。解题思路: 要求题目要求输入一个长度小于80的字符串,那我定义长度为80的字符数组,就不用考虑长度问题了。
从后边向前面遍历,遇到数字,后边所有的向前面移动就行了
h>void main(){ char a[100],*p,y;int x,i,num;gets(a);p=a;x=strlen(a);//不知道你中间这一段有啥用 我全删了for(i=0;i<x;i++)if(*(p+i)>=65&&*(p+i)<=90)printf("%c",*(p+i));}FONTNAME and FONTAMELFONTNAMEFONTAMELPress any key to continue ...
方法之一:下面的代码 只能处理英文字符和数字,请照着去修改。广告 C程序设计语言(原书第2版·新版 ...