2.8:Maefile、计算单词个数、判断文件类型、单词逆置

news2024/11/29 12:43:38

1.有main.c,test.c,test1.c,创建Makefile

程序代码:

Makefile:

  1 CC=gcc
  2 EXE=hello
  3 OBJS=$(patsubst %.c,%.o,$(wildcard *.c))
  4 CFLAGS=-c -o
  5 all:$(EXE)
  6 
  7 #hello依赖test.o main.o
  8 $(EXE):$(OBJS)
  9     $(CC) $^ -o $@
 10     
 11 #main.o依赖于main.c
 12 %.o:%.c
 13     $(CC) $(CFLAGS) $@ $^
 14 
 15 .PHONY:clean
 16 clean:
 17     @rm $(OBJS) $(EXE)  

main.c

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 void fun();
  5 void fun1();
  6 int main(int argc, const char *argv[])
  7 {
  8     fun();
  9     fun1();
 10     return 0;
 11 }  

 test.c:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 void fun()
  5 {
  6     printf("hello\n");
  7     printf("world\n");
  8 } 

test1.c:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 void fun1()
  5 {
  6     printf("good study\n");
  7 } 

运行结果:

2.输入字符串,计算单词个数

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     char str[20]="";
  7     gets(str);
  8     int i=0,count=0;
  9     int flag=0;//前一个字符为空格
 10     while(str[i]!='\0')
 11     {
 12         if(str[i]==' ')//如果当前字符是空格,空
 13             flag=0;
 14         else if(flag==0)//如果当前字符不为空格,前一个字符为空格
 15         {
 16             flag=1;
 17             count++;
 18         }
 19         i++;
 20     }
 21     printf("word num=%d\n",count);
 22     return 0;
 23 }  

 运行结果:

3. 在终端输入一个文件名,判断文件的类型

程序代码:

  1 #!/bin/bash
  2 read -p "please enter file:" file
  3 if [ -b $file ]
  4 then
  5     echo "dev"
  6 elif [ -c $file ]
  7 then
  8     echo "char dev"
  9 elif [ -d $file ]
 10 then
 11     echo "dir"
 12 elif [ -L $file ]
 13 then
 14     echo "link"
 15 elif [ -S $file ]
 16 then
 17     echo "socket"
 18 elif [ -p $file ]
 19 then
 20     echo "pipe"
 21 elif [ -f $file ]
 22 then
 23     echo "regular"
 24 else
 25     echo "error"
 26 fi 

运行结果:

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     char str[]="  I  am  Chinese";
  7     //去掉多余空格
  8     char *p=str;//定义两个指针指向字符串
  9     char *q=str;//一个指向源字符串,另一个指向新字符串
 10     while(*p!='\0')//遍历字符串
 11     {
 12         //前后两个都是空格,删除一个
 13         if(*p==' '&&*(p+1)!=' '||*p!=' ')
 14         {
 15             *q=*p;//如果符合规范,把p的值给到q
 16             q++;//指针q后移
 17         }
 18         //否则只有指针p后移
 19         p++;//指针p后移
 20     }
 21     *p='\0';
 22     char *i=str,*j=str+strlen(str)-1;
 23     //整体逆置
 24     while(i<j)
 25     {
 26         char t=*i;
 27         *i=*j;
 28         *j=t;
 29         i++;j--;
 30     }
 31     //单词逆置
 32     i=j=str;
 33     while(*i!='\0')
 34     {
 35         //到空格或'\0'结束
 36         while(*j!=' '&&*j!='\0')
 37             j++;
 38         //交换i到j之前的字符
 39         char *k=j-1;
 40         while(i<k)
 41         {
 42             char t=*i;
 43             *i=*k;
 44             *k=t;
 45             i++;k--;
 46         }
 47         //跨过空格
 48         while(*j==' ')
 49             j++;
 50         i=j;
 51     }
 52     puts(str);
 53     return 0;
 54 }    

运行结果:

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

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

相关文章

输出用“*”组成的X形图案。

输出用“*”组成的X形图案 输入描述&#xff1a; 多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;&#xff0c;表示输出的行数&#xff0c;也表示组成“X”的反斜线和正斜线的长度。 输出描述&#xff1a; 针对每行输入&#xff0c;输出用“*”组成的X形图案。 …

波奇学Linux:文件缓冲区

问题导入 文件流输出直接向显示器和重定向文件有不一样的表现 分别向显示器文件输出四个语句&#xff0c;最后fork创建子进程。 当程序运行时和程序重定向到文件中&#xff0c;输出的内容不一样。 重定向时c库函数&#xff08;printf,fprintf,fwrite&#xff09;调用了两次&…

片上网络NoC(3)——拓扑指标

目录 一、概述 二、指标 2.1 与网络流量无关的指标 2.1.1 度&#xff08;degree&#xff09; 2.1.2 对分带宽&#xff08;bisection bandwidth&#xff09; 2.1.3 网络直径&#xff08;diameter&#xff09; 2.2 与网络流量相关的指标 2.2.1 跳数&#xff08;hop coun…

JAVA设计模式之中介者模式详解

中介者模式 1 中介者模式介绍 提到中介模式&#xff0c;有一个比较经典的例子就是航空管制。 为了让飞机在飞行的时候互不干扰&#xff0c;每架飞机都需要知道其他飞机每时每刻的位置&#xff0c;这就需要时刻跟其他飞机通信。飞机通信形成的通信网络就会无比复杂。这个时候&…

【王道数据结构】【chapter5树与二叉树】【P158t6】

二叉树按二叉链表形式存储&#xff0c;试编写一个判别二叉树是否是完全二叉树的算法 #include <iostream> #include <queue> typedef struct treenode{char data;struct treenode *left;struct treenode *right; }treenode,*ptreenode;ptreenode buytreenode(char …

3dmax云渲染怎么使用?渲染100邀请码1a12

本文为大家整理了3dmax云渲染的使用教程&#xff0c;一起来看看吧。案例&#xff1a;渲染效果图&#xff0c;插件方式提交必备工具&#xff1a;渲染100客户端 1、进入渲染100官网(http://www.xuanran100.com/?ycode1a12)注册账号&#xff0c;记得注册时填邀请码1a12&#xff0…

UnityShader——03图形硬件简史与可编程管线

图形硬件简史与可编程管线 GPU发展简史 GPU英文全称Graphic Processing Unit&#xff0c;中文翻译为“图形处理器”&#xff0c;在现代计算机系统中的作用变得越来越重要 20世纪六七十年代&#xff0c;受硬件条件的限制&#xff0c;图形显示器只是计算机输出的一种工具&…

LeetCode、136. 只出现一次的数字【简单,位运算】

文章目录 前言LeetCode、136. 只出现一次的数字【简单&#xff0c;位运算】题目链接与分类思路异或一遍运算 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术…

【蓝桥杯】灭鼠先锋

一.题目描述 二.解题思路 博弈论&#xff1a; 只能转移到必胜态的&#xff0c;均为必败态。 可以转移到必败态的&#xff0c;均为必胜肽。 最优的策略是&#xff0c;下一步一定是必败态。 #include<iostream> #include<map> using namespace std;map<string,bo…

Java之拦截器interceptor

1. 概念 2. 步骤 第一步 第二步 参考资料 https://www.bilibili.com/video/BV1m84y1w7Tb?p168&vd_source705343a89f38d5c0d895383ccf38a5d6

VS Code主题设置(美化VS Code)

主题的具体效果放在了文章末尾&#xff0c;这篇文章后续也会进行更新 目录 切换整体主题&#xff08;整体主题&#xff09; 1.VS Code内置主题&#xff08;快捷键&#xff1a;CtrlK &#xff0c;CtrlT&#xff09; 1.VS Code左上角点击文件 2.选择首选项-->主题-->颜色…

LeetCode、1318. 或运算的最小翻转次数【中等,位运算】

文章目录 前言LeetCode、1318. 或运算的最小翻转次数【中等&#xff0c;位运算】题目链接与分类题解位运算 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领…

Map和Set(哈希表)

目录 map&#xff1a; map说明&#xff1a; Map.Entry的说明&#xff1a;,v> Map 的常用方法: 演示&#xff1a; 注意&#xff1a; TreeMap和HashMap的区别 Set&#xff1a; 常见方法说明&#xff1a; 注意&#xff1a; TreeSet和HashSet的区别 哈希表: 冲突&a…

数模.SI模型SI的四种扩展

一&#xff1a;最简单的考虑方式 二考虑某种使得参数beta降低的因素 三&#xff1a;增加人口自然出生率和死亡率&#xff0c;但不考虑疾病的死亡率 四&#xff1a;不考虑人口自然出生率和死亡率&#xff0c;只考虑疾病的死亡率 五&#xff1a;同时考虑人口自然出生率和死亡率和…

面向对象2:继承

目录 2.1继承 2.2 继承的好处 2.3 权限修饰符 2.4 单继承、Object 2.5 方法重写 2.6 子类中访问成员的特点 2.7 子类中访问构造器的特点 面向对象1&#xff1a;静态 2.1继承 向对象编程之所以能够能够被广大开发者认可&#xff0c;有一个非常重要的原因&#xff0c;是…

AI绘画作品的展示和变现

AI绘画作品的展示和推广技巧 如何通过AI绘画打造独特的个人IP 4.1 AI绘画作品买卖 平台一&#xff1a;抖音 抖音平台有「抖音图文扶持计划」&#xff0c;还会不定期推出图文伙伴计划、图文热点来了等&#xff0c;大家起号的时候更容易 当你的每篇作品阅读量稳定在 1W 时&…

常见单例模式详解

单例模式是23种设计模式中应用最广的模式之一&#xff0c;其定义&#xff1a;确保某一个类只有一个实例&#xff0c;而且自行实实例化并向整个系统通过这个实例。其类图如下&#xff1a; 通俗来说&#xff0c;单例模式就是用于创建那些在软件系统中独一无二的对象。在一个软件系…

ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions

异常处理模型详解之异常处理概述 一&#xff0c;异常处理相关概念二&#xff0c;异常处理概述 一&#xff0c;异常处理相关概念 在介绍异常处理之前&#xff0c;有必要了解一些关于异常处理状态的术语&#xff1a; 当处理器响应一个异常时&#xff0c;我们称该异常被获取了&a…

【C++入门语法】1.变量的世界

​ 欢迎来到C的世界&#xff01;在这篇文章中&#xff0c;我们将一起探索C编程中的基本概念——变量。变量是程序设计中非常重要的一部分&#xff0c;它们是存储数据的容器&#xff0c;让我们的程序能够记住和操作这些信息。 什么是变量&#xff1f; 变量是一个标识符&#x…

Web前端开发

一、概述 1.1 什么是HTML、CSS&#xff1f; 二、HTML 2.1 HTML快速入门 2.2 基础标签和样式 2.2.1 标题 &#xff08;1&#xff09;标题排版 输入&#xff01;加回车&#xff0c;直接生成HTML基本结构标签 。 <!-- 声明当前文档类型 --> <!DOCTYPE html> &l…