C语言—字符数组(3)
可能不是那么的完整,先凑合看吧,如果我学会如何修改以后,我慢慢回来修改的
1.编写程序实现对两个字符串的连接功能;
法一:不使用strcat函数,写程序直接实现,记得添加结束符,不然程序访问数组时候将变得不可预测
/*1.编写程序实现对两个字符串的连接功能*/#include <stdio.h>int main(void)
{char str1[] = "hello,";char str2[] = "world!";char str[100] = {0}; //用于存储连接后的字符串printf("字符串1: %2s 字符串2: %2s\n",str1,str2);int index1 = 0; //初始化下标while(str1[index1] != '\0') //复制str1到str{str[index1] = str1[index1];index1++;}int index2 = 0;while(str2[index2] != '\0') //复制str2到str{str[index1] = str2[index2];index1++;index2++;}str[index1] = '\0'; //在连接后的字符串末尾添加字符串结束符printf("连接后的字符串: %s\n",str);return 0;
}
法二:使用strcat函数
/*1.编写程序实现对两个字符串的连接功能,使用strcat函数*/#include <stdio.h>
#include <string.h>int main(void)
{char str[32] = {0}; //存储连接后的字符串char str1[] = "hello,";char str2[] = "world!";printf("连接之前字符串1: %2s 字符串2: %2s\n",str1,str2);strcat(str,str1); //strcat函数连接字符串1和字符串2strcat(str,str2);printf("连接后的字符串是: %s\n",str);return 0;}
2.编写程序实现对字符串有效数据长度的计算;
法一:不用strlen函数
*2.编写程序实现对字符串有效数据长度的计算;*/#include <stdio.h>int main(void)
{char str[8];unsigned int len = 0;printf("请输入一个字符串:");fgets(str,sizeof(str),stdin);while(str[len] != '\0') //遇到结束符停止循环{len++; //若未遇到结束符则增加有效数据长度}//屏蔽这里为还不是很懂,fgets()函数会自动添加结束符,我想添加判断语句却不行`/*if(len > 7){printf("输入字符串太长,请重新输入。\n");}*/printf("字符串中有效数据长度为: %u\n",len - 1); //减去结束符就是长度return 0;
}
法二:strlen函数
/*strlen函数*/#include <stdio.h>
#include <string.h>int main(void)
{char str[8];unsigned int len;printf("请输入一个字符串:");fgets(str,sizeof(str),stdin);len = strlen(str) - 1;printf("输入的有效的字符串长度是: %u\n",len);return 0;}
3.编程实现随机输出多个字符串中的某个;
/*3.编程实现随机输出多个字符串中的某个;*/#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>#define r 3
#define l 32int main(void)
{char arr[r][l] = {"hello","Spring Festival","Happy New Year"};srand(time(NULL)); //生成种子数int randow;randow = rand() % r; //随机生成选中的字符串的数字放入randow变量中printf("随机选中的字符串是: %s\n",arr[randow]);return 0;
}
思考题:
计算字符串中所有数字的和
字符串“123abd23ee1”==>123 + 23 + 1 = 147
划重点讲解:积累字符串变数组的小算法
#include <stdio.h>
#include <string.h>int main(void)
{char str[64] = {0};printf("请输入一个字符串:");scanf("%s",str);int num = 0; // 初始化一个变量来存储连续数字的值int sum = 0; // 初始化一个变量来存储所有数字的和for (int i = 0; str[i] != '\0'; i++) // 循环遍历字符串中的每个字符{if (str[i] >= '0' && str[i] <= '9') // 如果字符是数字{num = num * 10 + (str[i] - '0'); // 将数字字符转换为数字并累加到num}else{sum += num;num = 0; //num清零处理再进入循环}}sum += num; //加上最后一个数字,因为最后一个为数字的话,后面空字符将无法进入for循环printf("字符串中数字总和为: %d\n", sum); // 打印字符串中数字的总和return 0;
#include <stdio.h>
#include <string.h> int main(void)
{char str[] = "123abd23ee1"; // 定义一个字符数组,并初始化为给定的字符串printf("字符串为: %s\n",str); // 打印输入的字符串int sum = 0; // 定义一个变量来存储数字的和int num = 0; // 定义一个变量来存储当前数字的值int i = 0; // 定义一个索引变量,用于遍历字符串while(str[i] != '\0') // 当字符串结束符之前,循环继续{if(str[i] >= '0' && str[i] <= '9') // 如果数组中遍历到数字将进行此循环{num = num * 10 + (str[i] - '0'); // 将当前数字乘以10,然后加上字符转换为的数字,也就是2个数字变十位,3个数字变百位...}else // 如果是字符不是数字进行存储累加{sum += num; // 将当前数字的和加到总和中num = 0; // 将当前数字重置为0}}sum += num; // 将最后一个数字加到总和中printf("字符串中所有数字的和为: %d\n",sum); // 打印字符串中所有数字的和return 0;
}
这个写完就进入函数啦,嘿嘿
相关文章:

C语言—字符数组(3)
可能不是那么的完整,先凑合看吧,如果我学会如何修改以后,我慢慢回来修改的 1.编写程序实现对两个字符串的连接功能; 法一:不使用strcat函数,写程序直接实现,记得添加结束符,不然程序访问数组时候将变得不…...
linux 实用技能
1.查看系统版本 cat /etc/redhat-release cat /etc/redhat-release 2. 查看磁盘实用情况 df du 3.查看内存 top -Hp 2214 4. 网络配置 vi /etc/hostname vi /etc/hosts vi /etc/sysconfig/network-scripts/ifcfgens33 6. sed ‘s/a/b/g’ aaa.txt 替换 7. scp …...

【maya 入门笔记】基本视图和拓扑
1. 界面布局 先看基本窗口布局,基本窗口情况如下: 就基本窗口布局的情况来看,某种意义上跟blender更像一点(与3ds max相比)。 那么有朋友就说了,玛格基,那blender最下面的时间轴哪里去了&…...

IO 流分类
一、File File 类(磁盘操作)可以用于表示文件和目录的信息,但是它不表示文件的内容。递归地列出一个目录下所有文件: public static void listAllFiles(File dir) {if (dir null || !dir.exists()) {return;}if (dir.isFile())…...
JVM的主要组成部分,以及它们的作用。JVM中的内存区域有哪些,它们各自的作用是什么?什么是Java的堆内存,它如何影响程序的性能?
JVM的主要组成部分,以及它们的作用 JVM(Java虚拟机)的主要组成部分包括类加载器(Class Loader)、运行时数据区(Runtime Data Area)、执行引擎(Execution Engine)、本地库…...

Qt QWidget以及各种控件、布局 核心属性(适合入门使用时查询)
目录 1. QWidget核心属性 2. 按钮类控件 2.1 PushButton 核心属性 2.2 RadioButton 核心属性 2.3 CheckBox 和 Tool Button 核心属性 3. 显示类控件 3.1 Label 核心属性 3.2 LCDNumber 核心属性 3.3 ProgressBar 核心属性 3.4 Calendar Widget 核心属性 4. 输入类控…...

svg图片构造QGraphicsSvgItem对象耗时很长的问题解决
目录 1. 问题的提出 2. 问题解决 1. 问题的提出 今天通过一张像素为141 * 214,大小为426KB的svg格式的图片构造QGraphicsSvgItem对象,再通过Qt的Graphics View Framework框架,将QGraphicsSvgItem对象显示到场景视图上,代码如下&…...

边坡位移监测设备:守护工程安全的前沿科技
随着现代工程建设的飞速发展,边坡位移监测作为预防山体滑坡、泥石流等自然灾害的重要手段,日益受到人们的关注。边坡位移监测设备作为这一领域的关键技术,以其高精度、实时监测的特点,成为守护工程安全的重要武器。 一、边坡位移…...
Qt使用单例模式读取xml文件
Qt使用单例模式读取xml文件 一、单例模式介绍1、什么是单例模式2、为什么使用单例模式3、什么情况下使用单例模式4、使用单例模式需要注意哪些问题线程安全 5、单例模式的类型6、单例类的特点 2、单例模式的实现2.1懒汉式2.2饿汉式 一、单例模式介绍 1、什么是单例模式 单例模…...
备战蓝桥杯 Day6(学习动态规划)
引入 支付问题 假设有无限多的硬币,硬币面值为1,5,11。现在需要支付15元,问最少使用的硬币数? 贪心策略:1511*11*4,145 真正的答案153*5 3 dp的两个性质 最优子结构无后效性 dp的两大要素 1.状态2.状态转移方程 思路…...
【uniapp】自定义步骤条样式
代码实现 <view class"steps-wrap"><view class"flex-box"><view class"number active-number">1</view><view class"desc active-desc">步骤1</view><view :class"[line, activeStep …...

UE5 C++ UObject实例化
一.创建UObject C类 在MyObject中声明结构体FMyDataTableStruct 在MyPawn里面,先将头文件里包含 MyObject.h 在MyPawn中声明一个UMyObject类型的指针 TSubclassOf 是提供 UClass 类型安全性的模板类。例如您在创建一个投射物类,允许设计者指定伤害类型…...

Appium环境安装与架构介绍
Appium架构 Appium 设计哲学 不需要为了自动化而重新编译或修改被测应用不应该让移动端自动化测试限定在某种语言或者某个具体的框架不要为了移动端的自动化测试而重新造轮子移动端自动化测试应该是开源的 Appium 架构 Appium 架构图如下: Appium 的核心是一个 …...

Vue+Vite项目初建(axios+Unocss+iconify)
一. 创建项目 npx --package vue/cli vue 项目成功启动后,进入http://localhost:3200,即可进入创建好的页面(假设启动端口为3200) 二. 测试网络通讯模块 假设有本地服务器地址localhost:8000提供接口服务,接口为localhost:8000/token&#…...

ASUS华硕枪神8笔记本电脑G614JIR,G814JVR,G634JYR,G834JZR工厂模式出厂Windows11系统 带重置还原功能
适用ROG枪神8系列笔记本型号: G614JIR、G614JVR、G634JYR、G634JZR G814JIR、G814JVR、G834JYR、G834JZR 链接:https://pan.baidu.com/s/1tYZt6XFNC2d6YmwTbtFN7A?pwd3kp8 提取码:3kp8 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主…...
Python入门:常用模块—xml模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单 xml的格式如下,就是通过<>节点来区别数据结构的: <data> <country name"Liechtenstein"> <rank updated"yes"…...

蓝队应急响应工具箱v2024.1
1 蓝队工具箱 v2024.1 2 简介 蓝队工具箱是为打造一款专业级应急响应的集成多种工具的工具集,由真实应急响应环境所用到的工具进行总结打包而来,由 ChinaRan404,W 啥都学,清辉等开发者编写.把项目现场中所用到的工具连同环境一同打包,并实…...
Linux中获取字符串长度与获取子字符串
一、 获取字符串长度 #!/bin/bash string"jobs" echo ${string} # 输出结果: jobs echo ${#string} # 输出结果: 4 二、提取子字符串 以下实例从字符串第 2 个字符开始截取 4 个字符: #!/bin/bash str"敢于亮剑决不后退" echo ${str:2:…...
Rust语言之sha-256爆破
文章目录 一、实现Sha-256加密1.创建项目2.编写Cargo.toml文件3.编写程序代码 二、sha256爆破1.获取命令行参数2.读取文件3.校验输入参数4.暴力破解 一、实现Sha-256加密 SHA-256是一种安全哈希算法,主要特点是将输入的数据(无论长度)通过特定…...
Rust中的字符串处理及相关方法详解
在Rust中,字符串是一种非常重要的数据类型,而String类型则提供了对动态可变字符串的支持。本文将介绍一些常见的字符串处理方法以及相关示例代码。 创建字符串 在Rust中,有多种方式创建字符串,以下是一些常见的例子:…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...