char函数

C 输入和输出、char类型

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-02 06:31:17
参考链接: https://www.runoob.com/cprogramming/c-input-output.html 标准输入输出头文件 stdio.h #include 是一个预处理指令,用于引入 stdio.h #include <stdio.h> scanf( ) **只要遇到一个空格,scantf()就会停止读取 scanf("%s %d",str,&i)//如果是int必须提供地址 putchar()和getchar() putchar(int c) 把字符输出到屏幕上并返回相同的字符,这个函数同一个时间内只会输出一个单一的字符 getchar(void) 这个函数从屏幕上读取一个字符,并把它返回一个整数 gets()和puts() char gets(char s)函数从stdin读取 一行 到s所指向的缓冲区,直到遇到一个终止符或者EOF(end of file). int puts(const char*s)把字符串s和一个尾随的换行符写入到stdout stdin和stdout分别代表键盘和屏幕这种输入输出设备,C把所有设备看作文件,所以设备被处理的方式和文件相同 %s、%d、%c、%f 它们分别代表字符串、整数、字符、浮点数 char chr1='a';#单引号、一个字符 //但是可以 char chr2[3]="a"//一个双引号占一个,一共是3个

C++形参中 const char * 与 char * 以及char * char ** char a[] char * a[]的一些解读

寵の児 提交于 2019-12-02 05:51:53
const char *: 是指向 常量的指针 ,而不是指针本身为常量 ,可以不被初始化 .该指针可以指向常量也可以指向变量 ,只是从该指针的角度而言 ,它所指向的是常量。 const char *name1="John"; char s[]="abc"; name1=s; //正确,name1存放的地址可以改变 char * name2= name1; //不可以,因为name2 和 name1存放的是同一块地址,如果name2地址中的内容改了,则name1的内容也改了,那么name1就不再是指向常量的指针了。 (char * 可以直接赋值给const char * 反之不可以) 给char * 前加const这样做的好处有2点:   第一, 保证了实参不能被修改,增加了安全性。   第二, 扩大了该函数的参数的接收范围,使得函数更具通用性。 char * const: 指针类型的常量 。 char *const name1="John"; name1="abc"; //错误,name1指针,不能变,一个指针类型的变量,存放的是地址,所以不能把'"abc"的地址赋给name1 char * name2= name1; //可以 char *:char*是一维指针,即指向字符变量的指针。字符型指针,指向一个字符。 char **:char**是二重指针,也就是指向指针变量的指针。

利用python+graphviz绘制数据结构关系图和指定目录下头文件包含关系图

跟風遠走 提交于 2019-12-02 05:20:31
  作为一名linux系统下的C语言开发,日常工作中经常遇到两个问题:   一是分析代码过程中,各种数据结构互相关联,只通过代码很难理清系统中所有结构体的整体架构,影响代码消化的效率;   二是多层头文件嵌套包含,在新增需要被多处引用的结构体或者函数接口时,难以找到合适的地方放置结构体和函数接口的定义。    为解决这两个问题,用python分别写了两个脚本:   第一个脚本用于绘制关键数据结构的关联关系图,协助快速理解组织架构,加速理解代码逻辑;   第二个脚本用于分析指定目录下的头文件包含关系,协助新增结构体或者函数接口时快速找到合适的放置位置;   两个脚本绘图效果分别见下图1,图2。 图1.数据结构关联关系图 图2.头文件包含关系图(截取部分)   以下代码是用于分析结构体关联关系的python脚本(analysis_data_struct.py),使用方法如下:   1.在电脑上安装python和graphviz绘图工具(自行搜索,安装方法略);   2.把需要绘制关系图的关键数据结构复制粘贴到一个文本文件中;   3.把脚本中的保存数据结构文件路径(G:\git_repository\libreofficedraw\linux_4.18\plfc_struct )替换为自己的保存数据结构的文件路径(可自行修改脚本,通过参数传入文件路径);   4.执行命令 python

学习WindowAPI过程中遇到的问题

折月煮酒 提交于 2019-12-02 05:10:27
1.不能将“char ” 类型的值分配到“LPCWSTR"类型的实体 原因:“从Visual C 2005开始,编译器不再进行从char 到LPCWSTR的隐式转换了,用VC 6.0编译就没问题了,或者用提供的宏TEXT(“字符串”)来使用 MessageBox一类的API函数。“ 方法一:用tchar.h头文件解决 加上头文件#include<tchar.h> char变成TCHAR,同时字符串变为_T("") 例子: TCHAR lpszClassName[]=_T(“窗口”) 方法二:用宏TEXT(“字符串”)的方法来进行转换 例子: LPCWSTR lpszCreate=TEXT(“收到WM_CREATE消息,创建窗口”); 来源: https://blog.csdn.net/weixin_31302073/article/details/102719473

C++ vector容器和sort函数的学习

五迷三道 提交于 2019-12-02 04:58:53
Vector注意事项: 声明形如vector<> vec;的不是new出来而是作为普通变量的那么不需要delete, 在变量超出作用域时会自动回收 如果是用*vec = new vector<>()这种方式动态创建的vector那么需要delete vec vec里存放的元素如果不是指针那么不用delete, 这些元素在vec被释放时会被一起释放 vec里存放的元素是指针并且这些指针都是指向自己new的对象的话, 那么需要自己一个个delete c++中内存拷贝函数(C++ memcpy)详解 头文件:C++: #include<cstring> 原型: void * memcpy ( void *dest, const void *src, unsigned int count); //参数是void 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。 函数原型: void * memcpy ( void *dest, const void *src, size_t n); 功能: 由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。 头文件: #include<string.h> 返回值:   函数返回一个指向dest的指针。 说明:    1

Chapter03 第一节 简单变量

混江龙づ霸主 提交于 2019-12-02 04:54:17
3.1 简单变量 定义一个变量后,系统根据变量类型的不同在内存的不同区域分配一个空间,将值复制到内存中,然后用户通过变量名访问这个空间。 3.1.1 变量名 变量名的命名规则: 只能使用字母、数字、下划线 第一个字符不能是数字 区分大小写 不能使用关键字 以两个下划线/下划线和大学字符开头的名称保留给实现使用,以一个下划线开头的名称保留给实现,用作全局标识符(c++程序的所有源文件可用) 部分环境对变量名长度有要求 3.1.2 & 3.1.3 整型以及其扩展 计算机的基本单位是bit(位),一个bit分为0/1两种状态,8bit能表示256种不同的状态。一个字节通常意义上由8bit组成。1KB=1024字节。 int、short、long、long long 都表示整型,但是他们的位数不同,所以表示的数值的范围也就不同。不同的类型规定了不同的最小长度。具体如下: Short 16位 int 16位 long 32位 long long 64位 cppreference详细说明 不同位数的系统中,整型的长度不一样。主要区别在于long类型和指针类型。16位机器中,long占4字节,不支持longlong类型,指针为2个字节。32位机器中,long占4字节,longlong占8个字节,指针占4个字节。64位系统中,long占8个字节,longlong8个字节,指针8个字节。 //

Powershell 调用阿里云 云解析API 实现动态域名解析

我只是一个虾纸丫 提交于 2019-12-02 04:06:00
由于阿里云解析API调用官方文档中没有Powershell的示例脚本,而API接口调用实际是通过向DNS API的服务端地址发送HTTP POST或GET请求,因此根据官方文档写了相关的函数用于查询域名解析、修改域名解析的状态。如果要增删域名解析,参考官方文档修改函数中的Action等参数即可。 参考的阿里API调用链接: https://help.aliyun.com/document_detail/29743.html?spm=a2c4g.11186623.6.614.35f94c7bRwGbqZ function GetAliDnsInfo { <# .Synopsis 获取阿里云解析的域名解析 GetAliDnsInfo -SubDomain ceshi.domain.cn | ft #> param( [Parameter(Mandatory=$true)] $SubDomain ) $array = New-Object -TypeName System.Collections.ArrayList $Action = "DescribeSubDomainRecords" $array.Add(@("SubDomain",$SubDomain)) | Out-Null $array.Add(@("Action",$Action)) | Out-Null $array

一个关于内联优化和调用约定的Bug

做~自己de王妃 提交于 2019-12-02 03:20:19
很久没有更新博客了(博客园怎么还不更新后台),前几天在写一个Linux 0.11的实验 [1] 时遇到了一个奇葩的Bug,就在这简单记录一下调试过程吧。 现象 这个实验要求在Linux 0.11中实现简单的信号量 [2] ,但在改动内核代码后运行测试程序总是报错,例如: /* pc_test.c */ #define __LIBRARY__ #include <stdio.h> #include <stdlib.h> #include <semaphore.h> #include <unistd.h> _syscall2(long, sem_open, const char *, name, unsigned int, value); _syscall1(int, sem_unlink, const char *, name); int main(void) { sem_t *mutex; if ((mutex = (sem_t *) sem_open("mutex", 1)) == (sem_t *)-1) { perror("opening mutex semaphore creating"); return EXIT_FAILURE; } sem_unlink("mutex"); return EXIT_SUCCESS; } 提示为段错误: 定位 在内核实现信号量的核心代码

(转)两种高效过滤敏感词算法--DFA算法和AC自动机算法

妖精的绣舞 提交于 2019-12-02 02:30:30
原文: https://blog.csdn.net/u013421629/article/details/83178970 一道bat面试题:快速替换10亿条标题中的5万个敏感词,有哪些解决思路? 有十亿个标题,存在一个文件中,一行一个标题。有5万个敏感词,存在另一个文件。写一个程序过滤掉所有标题中的所有敏感词,保存到另一个文件中。 1、DFA过滤敏感词算法 在实现文字过滤的算法中,DFA是比较好的实现算法。DFA即Deterministic Finite Automaton,也就是确定有穷自动机。 算法核心是建立了以敏感词为基础的许多敏感词树。 python 实现DFA算法: # -*- coding:utf-8 -*- import time time1=time.time() # DFA算法 class DFAFilter(): def __init__(self): self.keyword_chains = {} self.delimit = '\x00' def add(self, keyword): keyword = keyword.lower() chars = keyword.strip() if not chars: return level = self.keyword_chains for i in range(len(chars)): if chars

结对编程

核能气质少年 提交于 2019-12-02 02:21:47
1.GITHUB项目地址https://github.com/920690572/wc 项目成员:3117008742刘霍翔 3117008746石林峰 项目要求 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 将生成10个题目。 使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10)的四则运算题目。该参数可以设置为1或其他自然数。该参数必须给定,否则程序报错并给出帮助信息。 生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1− e2的子表达式,那么e1≥ e2。 生成的题目中如果存在形如e1÷ e2的子表达式,那么 其结果应是真分数 。 每道题目中出现的运算符个数不超过3个。 程序一次运行生成的题目不能重复, 即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目 。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。 3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1