【C语言】字符串---刷题篇

news2024/11/15 7:15:21


1.统计字符串中元音字母的字数
2.使用起泡法和选择法将字符串按ASCII码值从小到大排列
3.将字符串中的数字字符倒置,即‘0’变‘9’、‘1’变‘8’、…、‘9’变‘0’.例如:字符串“a1b2c3d4e9f0”倒置变为“a8b7c6d5e0f9
4.将一个字符串中从第m个字符开始的全部字符复制成为另一个字符串
5.有10个字符串,每个字符串表示一段文字,将10个字符串连接成一篇文章,保存到一维数组并输出。
6.在全班50个学生的姓名中,查找指定姓名的学生,若找到则输出该学生姓名,否则输出无此人。



统计字符串中元音字母的字数

#include <stdio.h>
int main (void)
{
	char str[128]={0};//给字符串数组初始化为一个空字符串
	int count=0,i;
	printf("请输入一个字符串:\n");
	gets(str);
	for (i=0;str[i]!=0;i++)
		if (str[i]=='a'|| str[i]=='e'|| str[i]=='i'|| str[i]=='o' || str[i]=='u')
			count++;
	printf("%d\n",count);
	return 0;
}

使用起泡法和选择法将字符串按ASCII码值从小到大排列

#include <stdio.h>
#include <string.h>
int main (void)
{
	char str[128]={0};//给字符串数组初始化为一个空字符串
	int count=0,i,k;
	char temp;//设置中间变量
	printf("请输入一个字符串:\n");
	gets(str);
	//选择法排序
	for(i=0;i<strlen(str);i++)
		for (k=i+1;str[k]!=0;k++)
			if (str[k]<str[i])
			{
				temp=str[i];
				str[i]=str[k];
				str[k]=temp;
			}
	for (i=0;str[i]!=0;i++)
		printf("%c",str[i]);
	printf("\n");
	return 0;
}
#include <stdio.h>
#include <string.h>
int main (void)
{
	char str[128]={0};//给字符串数组初始化为一个空字符串
	int count=0,i,k,n;
	char temp;//设置中间变量
	printf("请输入一个字符串:\n");
	gets(str);
	n=strlen(str);//求字符串的长度
	//起泡法排序
	//一共进行n-1次比较
	//分析:第1趟,进行n-1次比较(最后一次是n-2与n-1比较);
	//第2趟,进行n-2次比较(最后一次是n-3与n-2比较)
	for (i=1;i<n;i++)
		for (k=0;k<n-i;k++)
			if (str[k]>str[k+1])
			{
				temp=str[k];
				str[k]=str[k+1];
				str[k+1]=temp;
			}
	for (i=0;str[i]!=0;i++)
		printf("%c",str[i]);
	printf("\n");
	return 0;
}

将字符串中的数字字符倒置,即‘0’变‘9’、‘1’变‘8’、…、‘9’变‘0’.例如:字符串“a1b2c3d4e9f0”倒置变为“a8b7c6d5e0f9”
这个题主要利用字符0~9的ASCII码值,字符’0’的ASCII值为48,依次,’1‘为49……’9‘为57

#include<stdio.h>
int main(void)
{
	char str[128]={0};
	int i;
	printf("请输入一个含有数字的字符数组:\n");
	gets(str);//输入str
	for (i=0;str[i]!=0;i++)
		if (str[i]>=48 && str[i]<=57)//判断是否是字符0~9
			str[i]=105-str[i];//对应项的ASCII值相加为105
	for (i=0;str[i]!=0;i++)//输出字符串
		printf("%c",str[i]);
	return 0;
}

将一个字符串中从第m个字符开始的全部字符复制成为另一个字符串

#include <stdio.h>
int main (void)
{
	char str1[128]={0},str2[128]={0};//字符数组初始化为一个空字符串
	//将要输出的字符串放到字符数组str2中
	int m;
	int i,k=0;
	//输入数据
	gets(str1); //输入字符串
	scanf("%d",&m);//输入m
	//第m个字符串的下标为m-1
	for (i=m-1;str1[i]!=0;i++)//依次将m个字符之后的字符“移到”str2中
	{
		str2[k]=str1[i];
		k++;
	}
	printf("%s\n",str2);//输出str2
	return 0;
}

一点改进:
前面几个程序都是利用循环输出的字符串,即对字符数组中的元素依次进行输出。(我当时的顾虑:因为定义的字符数组比较大,后面的全为“0”,可能0也会输出?)
但自己对“0”的理解不对,字符数组的“0”即是"\0"(字符串结束的标志),而不是字符’0‘;
所以由于前面定义时就对str2进行了初始化,使得str2中的每一个元素都是’\0‘,当对str2中的元素依次赋值,直到赋值结束,其后面的为赋值的位置都是’\0’,直接用printf()函数输出字符串即可。
有10个字符串,每个字符串表示一段文字,将10个字符串连接成一篇文章,保存到一维数组并输出。

#include <stdio.h>
#include <string.h>
int main (void)
{
	char str[10][128]={0};//二维数组全部初始化为0
	char str2[128]={0};//将最终连接好的文字放入一维数组
	int i;
	//将二维数组看作是特殊的一维数组,分别是str[0]、str[1]…str[9]
	for (i=0;i<10;i++)
		gets(str[i]);//输入10组文字
	for (i=0;i<10;i++)
		strcat(str2,str[i]);//利用字符串连接函数,依次连接
	printf("%s\n",str2);
	return 0;
}

在全班50个学生的姓名中,查找指定姓名的学生,若找到则输出该学生姓名,否则输出无此人。

使用字符串处理函数
1.puts函数——输出字符串的函数
下面编写一个简单的程序:

#include <stdio.h>
int main (void)
{
	char str[128]={"helloword"};
	puts(str);//用puts函数输出字符串"helloworld"
	return 0;
}

运行结果如下:
在这里插入图片描述
用printf()函数输出:

#include <stdio.h>
int main (void)
{
	char str[128]={"helloword"};
	printf("%s",str);
	return 0;
}

运行结果如下:
在这里插入图片描述

用puts函数在输出时,将字符串结束标志’\0’转换成’\n’,即输出完字符串后换行。
相当于printf(“helloword\n”)

即:

#include <stdio.h>
int main (void)
{
	char str[128]={"helloword"};
	printf("%s\n",str);
	return 0;
}

在这里插入图片描述
由于可以用printf()函数输出字符串,因此puts函数用得不多。
2.gets函数——输入字符串的函数
gets函数的作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。

char str[128]={0};
gets(str);

从键盘输入:

computer

gets函数将从键盘读入的“computer”送入字符数组中。
3.strcat——字符串连接函数
其作用是把两个字符数组中的字符串连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中。
说明:
字符数组1必须足够大,以便容纳连接后的字符串。
连接前两个字符串的后面都有’\0’,连接时将字符串1后面的‘\0’取消,只在新字符串最后面保留’\0’。



不断持续补充……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/511669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

187页9万字企业大数据治理与云平台实施方案(word)

1 项目背景概述 1.1 项目背景理解 1.2 项目需求范围 2 项目技术方案 2.1 咨询研究服务方案 2.1.1 咨询研究服务内容 2.1.2 咨询服务方案 2.2 第三方独立评估 2.2.1 概述 2.2.2 管理办法 2.2.3 考核机制 2.3 安全咨询研究服务方案 2.3.1 安全咨询服务内…

大唐杯学习笔记(1)—— 5G网络架构与组网部署

目录 一、名词汇总1.核心网与接入网2.5G网络架构3.核心网架构演进(1)2G核心网(1)3G&#xff0c;4G核心网 4.4G核心网架构5.5G核心网架构6.5G接入网网架构7.主要网元功能 二、5G主要网元功能1.用户面功能UPF(User Plane Function)2.会话管理功能SMF(Session Management Function…

【SpringCloud微服务实践】服务注册与发现(理论)

注册与发现 在之前的示例中&#xff0c;采取的是硬编码的方式&#xff0c;需要调用的微服务的地址是被我们写死在文件或代码中的。在传统应用程序中&#xff0c;一般都是这么做的&#xff0c;然而这种方式存在不少缺陷&#xff1a; 静态配置&#xff1a;因为是写死的网络地址…

Cy5.5-PEG2000-Biotin,Cy5.5-聚乙二醇-生物素;Biotin-PEG-Cy5.5;可用于检测抗生物素、链霉亲和素或中性生物素

Cyanine5.5-PEG-Biotin&#xff0c;Cy5.5-聚乙二醇-生物素 中文名称;Cy5.5-聚乙二醇-生物素 英文名称;Cyanine5.5-PEG-Biotin 性状&#xff1a;粘稠液体或固体粉末&#xff0c;取决于分子量大小 溶剂&#xff1a;溶于水、氯仿、DMSO等常规性有机溶剂 分子量PEG:1k、2k、3.…

【Python】JupyterLab报错:Server Connection Error如何解决?

文章目录 一、报错情形二、深层原因三、解决方案3.1 重命名用户名3.2 启用Administrator账户3.3 切换Administrator账户3.4 重命名用户文件夹3.5 修改注册表3.6 修改环境变量 小结 Anaconda的JupyterLab 作为优秀的网页编辑器&#xff0c;非常适用于编写Python程序&#xff0c;…

Qt的窗口的设置

窗口外部设置 Qt::WindowFlags Qt::WidgetQWidget默认窗口&#xff0c;没有父窗口的话&#xff0c;是一个独立窗口Qt::Window是一个窗口&#xff0c;有窗口边框和标题Qt::Dialog是一个对话框窗口Qt::Sheet是一个窗口或部件Macintosh表单(sheet)Qt::Drawer是一个窗口或部件Ma…

Mac 安装Nginx详细教程

一、前言 本文介绍一下&#xff0c;如何在Mac系统中安装Nginx&#xff0c;把详细过程记录下来&#xff0c;方便以后查看&#xff0c;也方便大家学习。 二、正文 1、安装 Homebrew homebrew是什么&#xff1f;它是Mac中的一款软件包管理工具&#xff0c;通过brew可以很方便的…

复刻一个羊了个羊掘金商城版

游戏逻辑 与羊了个羊逻辑一致&#xff0c;不再赘述 游戏实现 盛放元素的容器box&#xff0c;临时存储的容器temp&#xff0c;多余元素的容器source与source1&#xff0c;结果元素result <div id"box"></div><div id"temp"></div&…

【OC底层-类和对象深基】

文章目录 前言1 类和对象1.1 类1.1.1 cache_t 和 class_data_bits_t 1.2 对象 2 isa指针&#xff08;结构体&#xff09;复习-OC中的对象实例对象&#xff08;Instance&#xff09;类对象(Class)元类对象isa的指向方法调用顺序&#xff08;不涉及消息转发&#xff09; 2.1 unio…

JavaScrip 实战案例之【实现动画导航栏效果】

​Hello~ 咱们今天一起来学习一个动画导航的小项目 Part 1 HTML结构 <body><nav class"active" id"nav"><ul><li><a href"#">Home</a></li><li><a href"#">Works</a>&…

Cy5.5-PEG-NH2/SH/COOH/MAL,NH2-PEG-Cy5.5;CY5.5-聚乙二醇-氨基文章介绍

Cy5.5-PEG-NH2 cy5.5-聚乙二醇-氨基 中文名称&#xff1a;CY5.5-聚乙二醇-氨基 英文名称&#xff1a;Cy5.5-PEG-NH2 溶剂&#xff1a;溶于水、氯仿&#xff0c;DMSO等常规性有机溶剂 性状&#xff1a;固体或粉末&#xff0c;取决于分子量 分子量&#xff1a;1k、2k、3.4k、…

计算机视觉(4)—— 未有深度学习之前

目录 四、未有深度学习之前 4.1 图像分割 4.1.1 基于阈值分割 4.1.2 基于边缘分割 4.1.3 基于区域分割 &#xff08;1&#xff09;区域生长法 &#xff08;2&#xff09;分水岭算法 4.1.4 基于图论分割 &#xff08;1&#xff09;Graph Cuts 分割 ​&#xff08;2&…

关于说服(三)- 表达

关于口才 一般人眼中的口才好&#xff1a; 有见解&#xff0c;有想法内容条理分明&#xff0c;逻辑清晰严谨真诚自信&#xff0c;拉近距离 这些都关注于逻辑与内容&#xff0c;真正的表达是要教你如何输出有价值的信息 表达需要做什么&#xff1a; 如何筛选素材&#xff0c…

【P16】JMeter JSON提取器(JSON Extractor)

文章目录 一、准备工作二、测试计划设计 一、准备工作 慕慕生鲜&#xff1a; http://111.231.103.117/#/login 进入网页后&#xff0c;登录&#xff0c;页面提供了账户和密码 搜索框输入“虾” 右键检查或按F12&#xff0c;打开调试工具&#xff0c;点击搜索 二、测试计划设…

Cy5.5-PEG-FA结构式 荧光Cy5.5标记聚乙二醇叶酸;PEG分子量2000,叶酸(-FA)基团可应用于靶向传递

Cy5.5-PEG-FA&#xff0c;Cy5.5-聚乙二醇-叶酸 中文名称&#xff1a;Cy5.5-聚乙二醇-叶酸 英文名称&#xff1a;Cy5.5-PEG-FA 溶剂&#xff1a;溶于水、氯仿&#xff0c;DMSO等常规性有机溶剂 性状&#xff1a;固体或粉末&#xff0c;取决于分子量 分子量&#xff1a;1k、…

OSS 文件文件夹 直接打包下载

前言 OSS 存放了很多项目&#xff08;项目是 TMagic 低代码平台编辑生成&#xff0c;自动上传 OSS&#xff09;&#xff0c;现在需要在管理后台将项目打包ZIP下载&#xff0c;并不在本地生成文件。 OSS 要下载项目文件&#xff1a; 一、思路实现 创建 OSSClient 实例获取 Bu…

198页11万字智慧水务平台建设方案(word)

目 录 一、项目概述 1、建设背景 2、存在问题 2、运营分析 二、支持技术 1、3S技术 2、物联网技术 3、富客户端技术 4、移动互联网技术 三、建设目标 三、需求分析 1、系统用户 2、调度管理对象 3、业务需求分析 3.1 主要业务描述 3.2 业务需求…

Mal-PEG2000-Cy5.5;Cy5.5-PEG-Maleimide 花箐染料Cy5.5-聚乙二醇-马来酰亚胺

CY5.5-PEG-Mal&#xff0c;CY5.5-聚乙二醇-马来酰亚胺 中文名称&#xff1a;CY5.5-聚乙二醇-马来酰亚胺 英文名称&#xff1a;CY5.5-PEG-Mal&#xff0c; Cy5.5-PEG-Maleimide 溶剂&#xff1a;溶于水、氯仿&#xff0c;DMSO等常规性有机溶剂 性状&#xff1a;固体或粉末&a…

车载以太网 - SomeIP - TC8用例常见缩写

对于初接触SomeIP的朋友来说,看测试用例最大的烦恼我想不仅仅是来自纯英文的描述,更多的一定无休止的缩写,那这些缩写到底代表什么意思呢,我也是深受其害的人,因此就把对应的缩写、中文、英文整理出来了,希望能对大家有所帮助。 常见缩写及中英文注释 SomeIP常见缩写英文…

第一章 电路模型和电路定律(习题解析)

第一章 电路模型和电路定律&#xff08;习题解析&#xff09; 简介&#xff1a; 书后面的习题详解&#xff0c;主要包含的内容关联方向与非关联方向、功率平衡 电路基础&#xff08;第一章电路模型和电路定律&#xff09;第一章电路模型和电路定律&#xff08;补充&#xff09;…