26、Makefile/shell/字符串处理相关练习20240208

一、现有文件test.c\test1.c\main.c , 请编写Makefile.

vi Makefile 创建

代码:

CC=gcc
EXE=who
OBJS=$(patsubst %.c,%.o,$(wildcard *.c))
FLAGS=-c -oall:$(EXE)$(EXE):$(OBJS)$(CC) $^ -o $@%.o:%.c$(CC) $(FLAGS) $@ $^.PHONY:cleanclean:@rm $(OBJS) $(EXE)

运行:

二、C编程实现:输入一个字符串,计算单词的个数

如:“this is a boy”  输出单词个数:4个

代码:

#include<stdlib.h>
#include<string.h>
#include<stdio.h>
int word_number(char *p)
{int i=0,count=0;while(*(p+i))//外层循环控制到'\0'结束;{int j=i;while(*(p+j)!=' ' && *(p+j)!='\0')// 跳过单词到空格或\0结束;j++;if(*(p+j)==' ')// 记录单词中间空格的个数;count++;while(*(p+j)==' ')// 跳过空格j++;i=j;// 外层循环步长,即从下一个单词开始下一轮循环}return count+1;//单词个数等于中间空格个数加一
}
int main(int argc, const char *argv[])
{char str[20]="";printf("please enter the str:");gets(str);//gets可以获取终端输入含有空格的字符串;int count=word_number(str);封装函数计算个数printf("number of words is:%d\n",count);return 0;
}

运行:

三、在终端输入一个文件名,判断文件类型

代码:

#!/bin/bashread -p "please enter file:" fileif [ -b $file ]
thenecho dev
elif [ -c $file ]
thenecho char_dev
elif [ -d $file ]
thenecho dir
elif [ -L $file ]
then echo link
elif [ -S $file ]
thenecho socket
elif [ -p $file ]
thenecho pipe
elif [ -f $file ] 
thenecho regular
elseecho error
fi

运行:

四、C编程实现字符串倒置:(注意 是倒置,而不是直接倒置输出)

如:原字符串为:char *str = “I am Chinese”

倒置后为:“Chinese am I”

附加要求:删除原本字符串中 多余的空格。

代码:

#include<stdlib.h>
#include<string.h>
#include<stdio.h>
void Inversion(char *p)
{int k=strlen(p)-1;//计算字符串长度;int i=0;while(i<k)//整体逆置;{char t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;i++;k--;}i=0;while(*(p+i))//外层循环控制到'\0'结束;{int j=i;while(*(p+j)!=' '&& *(p+j)!='\0') //找到单词后面的第一个空格或'\0';j++;k=j-1;//k为单词最后一个字母;while(i<k)//单词再逆置;{char t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;i++;k--;}int z=j+1;//z为空格的后一个字符while(*(p+z)==' ') //如果z仍未空格 则将后续字符串整体前移{int x=z;while(*(p+x))//整体前移(等价于删除多余空格){*(p+x)=*(p+x+1);x++;}}i=z;//循环结束时即表示z的位置不为空格,将位置赋值给i;}
}
int main(int argc, const char *argv[])
{char str[]="I am     Chinese";//定义字符串Inversion(str);//封装函数逆置单词并删除多余空格puts(str);//输出逆置后的字符串;return 0;
}

运行:

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

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

相关文章

Javaweb之SpringBootWeb案例之异常处理功能的详细解析

3. 异常处理 3.1 当前问题 登录功能和登录校验功能我们都实现了&#xff0c;下面我们学习下今天最后一块技术点&#xff1a;异常处理。首先我们先来看一下系统出现异常之后会发生什么现象&#xff0c;再来介绍异常处理的方案。 我们打开浏览器&#xff0c;访问系统中的新增部…

Flask基础学习

1.debug、host、port 模式修改 1) debug模式 默认debug模式是off&#xff0c;在修改代码调试过程中需要暂停重启使用&#xff0c;这时可修改on模式解决。 同时在debug模式开启下可看到出错信息。 下面有关于Pycharm社区版和专业版修改debug模式的区别 专业版 社区版&#…

springboo冬奥会科普平台源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理平台应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

人大金仓bat文件备份数据库

1&#xff09;使用环境变量来存储密码 setx KINGBASE_PASSWORD "abc123" 2&#xff09;编写backup.bat :: 设置备份参数 set "sys_dumpc:\Program Files\Kingbase\ES\V8\KESRealPro\V008R006C008B0014\ClientTools\bin\sys_dump" set "hostloca…

FPS游戏框架漫谈第二十二天

今天我们要谈的话题是热更新辅助翻译工具 那么什么是热更新辅助翻译工具呢 我们聊的其实是一种语言翻译工具&#xff0c;就我们游戏而已采用的是c#语言开发&#xff0c;热更采用的是lua语言&#xff0c; 那么我们平时热更是不是需要写lua代码呢&#xff1f;&#xff1f;&#x…

Spring Boot 笔记 003 Bean注册

使用Idea导入第三方jar包 在porn.xml种添加的第三方jar包依赖&#xff0c;并刷新 可以在启动类中尝试调用 以上放到启动类中&#xff0c;不推荐&#xff0c;建议创建一个专门定义的类 package com.geji.config;import cn.itcast.pojo.Country; import cn.itcast.pojo.Province;…

[CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理

文章目录 前言一、所需环境二、实现思路2.1. 定义了LeNet网络模型结构&#xff0c;并训练了20次2.2 以txt格式导出训练结果(模型的各个层权重偏置等参数)2.3 (可选)以pth格式导出训练结果&#xff0c;以方便后期调试2.4 C CUDA要做的事 三、C CUDA具体实现3.1 新建.cu文件并填好…

C语言:分支与循环

创造不易&#xff0c;友友们给个三连吧&#xff01;&#xff01; C语⾔是结构化的程序设计语⾔&#xff0c;这⾥的结构指的是顺序结构、选择结构、循环结构&#xff0c;C语⾔是能够实 现这三种结构的&#xff0c;其实我们如果仔细分析&#xff0c;我们⽇常所⻅的事情都可以拆分…

【Linux】文件的软硬链接

文章目录 一、文件和目录的一些命令ls 命令stat 命令 二、链接的概念三、软链接&#xff08;symbolic link&#xff09;创建和删除软链接的示例软链接的特性软链接的应用使用 find 查找链接文件 四、硬链接&#xff08;hard link&#xff09;创建和删除硬链接的示例硬链接的特性…

轮廓分析方法

轮廓分析是一种用于描述和分析物体或图像的形状的方法。它通过检测边界并连接边界上的像素点来获得物体或图像的轮廓&#xff0c;然后对轮廓进行分析以提取出关键的形状特征。 在轮廓分析中&#xff0c;常用的方法包括边缘检测、边缘连接、轮廓细化等。边缘检测通过寻找图像中…

js手写Promise(上)

目录 构造函数resolve与reject状态改变状态改变后就无法再次改变 代码优化回调函数中抛出错误 thenonFulfilled和onRejected的调用时机异步then多个then 如果是不知道或者对Promise不熟悉的铁铁可以先看我这篇文章 Promise 构造函数 在最开始&#xff0c;我们先不去考虑Promi…

代码随想录算法训练营DAY16 | 二叉树 (3)

一、LeetCode 104 二叉树的最大深度 题目链接&#xff1a;104.二叉树的最大深度https://leetcode.cn/problems/maximum-depth-of-binary-tree/ 思路&#xff1a;采用后序遍历递归求解。 class Solution {int ans 0;public int maxDepth(TreeNode root) {if(root null){retur…

wyh的迷宫

涉及知识点&#xff1a;求迷宫能否到达终点的&#xff0c;而不是求路径数的&#xff0c;用bfs时可以不用重置状态数组&#xff08;回溯&#xff09;。 题目描述 给你一个n*m的迷宫&#xff0c;这个迷宫中有以下几个标识&#xff1a; s代表起点 t代表终点 x代表障碍物 .代…

PHPExcel导出excel

PHPExcel下载地址 https://gitee.com/mirrors/phpexcelhttps://github.com/PHPOffice/PHPExcel 下载后目录结构 需要的文件如下图所示 将上面的PHPExcel文件夹和PHPExcel.php复制到你需要的地方 这是一个简单的示例代码 <?php$dir dirname(__FILE__); //require_once …

CloudStack Agent重新安装与卸载指南

在云计算环境中&#xff0c;CloudStack是一个流行的开源云管理平台。作为CloudStack架构中的关键组件&#xff0c;CloudStack Agent负责在虚拟机&#xff08;VM&#xff09;上执行来自CloudStack管理服务器的命令。本文将指导您如何重新安装和卸载CloudStack Agent。 卸载Clou…

l + r >> 1; 的含义

void merge_sort(int q[],int l,int r){//递归的终止情况if(l>r)return;//第一步&#xff1a;分成子问题int mid lr>>1;//第二步&#xff1a;递归处理子问题merge_sort(q, l, mid), merge_sort(q, mid1, r);//第三步&#xff1a;合并子问题int k 0, i l, j mid1;…

【前后端接口AES+RSA混合加解密详解(vue+SpringBoot)附完整源码】

前后端接口AES+RSA混合加解密详解(vue+SpringBoot) 前后端接口AES+RSA混合加解密一、AES加密原理和为什么不使用AES加密二、RSA加密原理和为什么不使用rsa加密三、AES和RSA混合加密的原理四、代码样例前端1. 请求增加加密标识2. 前端加密工具类3.前端axios请求统一封装,和返…

Unity3d Shader篇(五)— Phong片元高光反射着色器

文章目录 前言一、Phong片元高光反射着色器是什么&#xff1f;1. Phong片元高光反射着色器的工作原理2. Phong片元高光反射着色器的优缺点优点缺点 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数 三、效果四、总…

ChatGPT升级版本GPT-4V(ision)支持多模态语音和图像

ChatGPT升级指南&#xff1a;迎接GPT-4V(ision)的全新多模态时代 ChatGPT最新升级引入了GPT-4V(ision)&#xff0c;这是一个突破性的多模态版本&#xff0c;支持语音和图像输入。现在&#xff0c;用户可以与ChatGPT进行更加丰富和互动的对话。以下是您升级到GPT-4V(ision)所需…

机器学习7-K-近邻算法(K-NN)

K-Nearest Neighbors&#xff08;K-近邻算法&#xff0c;简称KNN&#xff09;是一种基本的监督学习算法&#xff0c;用于解决分类和回归问题。KNN的核心思想是基于距离度量&#xff0c;在特征空间中找到最近的K个样本&#xff0c;然后使用它们的标签进行决策。以下是KNN的基本概…