#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
// popen 函数使用
// 引用函数库,相当于 linux shell 中 apt install xxx 安装包,安装后才能使用这个包中的命令
char shuzu ()
{
char str[99];
// 定义数组元素个数99 没有赋值
strcpy(str,"This is string.h library function");
// 字符串复制: 1.接收字符串变量 str; 2.定义字符串
puts(str);
// puts 打印数组内容
memset(str,'3',6);
// 替换函数: 1.被替换的数组; 2.替换目标字符串; 3.替换多少个位置; 字符串前12 个被替换成0
puts(str);
// 字符串标准输出
char a[99];
strcpy(a,"zifuhcuan biaozhun \\n $a ");
puts(a);
printf("换行符号,需要加转译: %s\n", a);
int aa[3]={1111,22222,999239};
// 定义数组aa 有三个元素,大括号顺序赋值
int n;
// 定义循环变量,循环指定打印: aa[1] 到 aa[3] 之间的所有数组
for (n=0;n<3;n++){
printf("打印数组: %d\n", aa[n] );
}
return(0);
// 该函数执行完,返回 0
}
int zhizhen()
{
FILE *fp;
// 定义指针变量
char c[] = "This is runoob";
// 定义数组,元素个数不固定
char dp[20];
fp = fopen("file.txt", "w+");
// fopen 打开文件方式:w+ 读写
fwrite(c, strlen(c) + 1, 1, fp);
// write [ raɪ t ] 写;定义写入规则, 将数组 c 中的内容写入到 fp 文件中
// 第1个:被写入的内容;2.写入的元素大小:strlen 计算字符串长度;3.元素个数; 4.指针文件
printf("字符串长度 %d\n", strlen(c)+1);
// strlen 计算变量字符串的长度 再 +1
fseek(fp, 0, SEEK_SET);
// 写入文件的位置:1.指针文件,2.偏移字节量(0 不偏移),3. 开始偏移写入位置:SEEK_SET 文件开头,SEEK_CUR 指针当前位置, SEEK_END 文件末尾
fread(dp, strlen(c)+1, 1, fp);
// 读取函数: 1.内存块指针; 2.读取每个元素的大小,字节;3.元素个数; 指针文件
printf(" 再次读取文件查看内容: %s\n", dp);
fclose(fp);
// 关闭文件指针
return(0);
}
int popencs(void)
{
// popen 执行shell 命令并返回结果
#define BUF_SIZE 1024
// 定义常量 值为1024
char buf[BUF_SIZE];
// 定义数组buf 长度 为 1024
FILE * p = NULL;
// 定义指针为空
p = popen("ifconfig enp2s0", "r");
// 读取shell 命令结果: r 为读取, w 写入:通常是创建文件,或者启动服务
if (!p) {
fprintf(stderr, "Erro to popen");
}
while (fgets(buf, BUF_SIZE, p) != NULL) {
// fgets 读取并存储: 1.储存到数组 buf; 2.读取最大字符数 1024 字; 3.对象指针字符流
fprintf(stdout, "%s", buf);
// 打印:发送格式化输出流到 stdout
}
pclose(p);
// 关闭文件指针
return 0;
}
int timehs ()
{
time_t curtime;
time(&curtime);
printf("当前时间 = %s", ctime(&curtime));
return(0);
}
// 结构体数组指针
void zhizhenjiegou ()
{
struct jiegou
{
// 定义结构体名 jg; 成员: sum ,name长度20 ,sex, score 相似于数据库建表
int num;
char name[20];
char sex;
int age;
};
struct jiegou stu[3] = {{10101, "Li Lin", 'M', 18},
{10102, "Zhang Fun", 'M', 19},
{10103, "Wang Min", 'F', 20}};
// 定义结构体 jg 的数组变量 stu 简称:结构体变量 ; 类似于数据库 jg 中的表 stu
// 结构体变量 stu 有三组数据,相似于数据库表有三个人的学号,名字等等
struct jiegou *p;
// 定义指针p为:结构体(数据库); 三个等价 stu.num 和 (*p).num 和 p->num
// p = &stu; 这个是读取内存地址,符号 &
printf("No. name sex age\n");
for(p=stu; p<stu+3;p++)
// 定义指针为:结构体变量(表)中的元素,循环次数为3次
printf("%5d %-12s %-8c %4d\n", p->num, p->name, p->sex, p->age);
// %-12s 左对齐输出字符串, %-2c 左对其输出单个字符
}
// c 结构体:https://www.runoob.com/w3cnote/c-structures-intro.html
void main()
// 定义任意类型 main 函数
{
shuzu();
// 执行数组函数
char a[]="开始执行 zhizhen 写入文件函数,前提需要创建 file.txt";
printf(" 字符数组赋值中文 格式 a[] \n %s", a);
zhizhen();
// 执行指针函数
popencs();
timehs();
zhizhenjiegou();
}
Powered by ddoss.cn 12.0
©2015 - 2025 ddoss
渝公网安备50011302222260号
渝ICP备2024035333号
【实验平台安全承诺书】
小绿叶技术社区,优化网络中,点击查看配置信息
主机监控系统: 安全防火墙已开启检查cc攻击-下载文件完成后等待10s 恢复访问,检查连接数低于峰值恢复访问
您的IP:216.73.216.110,2025-12-01 15:23:33,Processed in 0.01069 second(s).