C语言教程:字符串b在a中出现的次数统计方法分享

创始人
2024-12-30 21:30:46
0 次浏览
0 评论

C语言编程:输入一个以回车结束的字符串a(少于80个字符),再输入一个字符串b,统计并输出b在a中出现的

以下是我编译的结果,运行正常,但输出格式可能不符合您的要求,请大家补充。
请问您是否明白。
我希望这有帮助。
#include"stdio.h"intinput1(character[])//数组a的输入,返回数组a的长度{inti;charp='a';//以便p可以加入下一个循环初始化for(i=0;p!='\n';i++)//除非输入换行符,否则始终存储以下字符。
{scanf("%c",&p);if(p!='\n')//如果不输入回车,则将字符存储在数组中。
a[i]=p;else//如果包含换行符则存储“\0”。
a[i]=0;}returni-1;//i-1是数组的长度。
}intinput2(character[],intlen)//len为数组a的长度和数组b的长度{inti;charp='a';for(i=0;p!='\n';i++)返回。
){scanf("%c",&p);if(p!='\n')a[i]=p;elsea[i]=0;}//以上与input1相同。
if(lenreturn0;elsereturni-1;//返回i-1,因为它是数组b的长度}intwork(character[],charb[],intlen1,intlen2)//len1和len2分别是数组a和b的长度{intn=0,i=0,j=0,temp=0;//temp必须始终与i匹配。
while(i+len2<=len1)//只要a的a[i]后面有一个数组b长度的字符串,就进行下面的判断。
{if(a[i]!=b[0])//逐一查找。
i++;elsewhile(waitfortemp)只要与b的第一个字符不同,就不会在循环内执行任何操作。
){if(a[temp]==b[j])//比较下一对元素是否相等。
{j++;temp++;if(temp==i+len2-1)//如果比较到最后一次比较,说明a和b的字符串相同,n增加1n++。
}elseif(temp!=b[j])break;}i++;/查找/a中的下一个元素,等待下一次循环。
temp=i;//temp必须始终匹配ij=0;//每当a的一个元素被替换时,如果等于b[0],那么就会比较b的序列}returnn;}voidmain(){intlen1,len2,num;//len1是a的长度,len2是b的字符串长度,num是a中b的字符串数量。
char[81],b[81];//分别存储两个字符串len1=input1(a);//写入输入a[81]并返回字符串的长度子函数len2=input2(b,len1);//下标写的是用于输入的函数,a[81]num=work(a,b,len1,len2);//计算需要的数字我会printf("%d\n",num);printf("%s\n",a);printf("%s\n",b);}

C语言题目。。输入一个以回车结束的字符串(少于80个字符),滤去所有的非十六进制字

将输入存储在字符串中,然后一一判断,可以剔除无效字符。

1.算法分析:

1.

2.一一判断是否合法。
如果不合法,请删除。
删除方法可以用后续字符覆盖当前字符。

3.可以从前往后遍历,每个非法字符都会被下一个合法字符覆盖,这样可以一次循环完成所有操作。

2.参考代码:

#includeintmain(){chars[100];*q;   get(s);//输入字符串。
for(p=q=s;*p!='\0';p++)//以指针p遍历字符串。
if((*p>='0'&&*p<='9')||(*p>='a'&&*p<='f')||(*p>='A'&&*p<='F'))//允许使用十六进制字。
               *q++=*p;//将值赋给对应的位置。
只有合法的才会被赋值,所以非法的会被覆盖。
*q='\0';//添加新的字符串终止符。
Printf("%s\n",s);//输出结果。
返回0;}

c语言设计:从键盘上输入若干字符(以回车结束),分别统计其中字符(区分大小写),数字和其他的字符的

#includeintmain(){intc;intel=0,EL=0,nu=0,其他=getchar();//输入字符while(c!='\n'){if(c>='a'&&c<='z')el++;           elseif(c>='A'&&c<='Z')            EL++;否则if(c>='0'&&c<='9')nu++;E其他++;c=getchar();//输入字符}}printf("小写字母个数=%d\n大写字母个数=%d\n数字个数=%d\n其他字母个数=%d\n",el、EL、NU、其他);return0;}

测试结果:

热门文章
1
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...

4
MySQL查询加速秘籍:PolarDB ... mysql中in大量数据导致查询速度慢怎么优化?在MySQL中处理大量数据时,查...

5
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

6
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

7
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

8
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

9
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

10
SQL必备:详解常用字符串函数及数据类型... sql常用的字符串函数都有哪些常用的字符串函数有:1.字符转换功能1.ASCII...