char函数

【Keil5 C51】调用C51的库函数_crol_做流水灯实验

北城余情 提交于 2020-02-08 20:22:46
_crol_ 函数的介绍 Cx51 User’s Guide Summary # include <intrins.h> unsigned char _crol_ ( unsigned char c , /* character to rotate left */ unsigned char b ) ; /* bit positions to rotate */ Description The _crol_ routine rotates the bit pattern for the character c left b bits. This routine is implemented as an intrinsic function (从c变量中的b开始位 一次向左移动, 比如b = 1 时这串数字会这样移动:1111110–>11111101) Return Value The crol routine returns the rotated value of c.(把移动之后的值返回给c) Example # include <intrins.h> void test_crol ( void ) { char a ; char b ; a = 0xA5 ; b = _crol_ ( a , 3 ) ; /* b now is 0x2D */ } 流水灯代码

PTA|《C语言程序设计(第3版)》习题6-1 分类统计字符个数 (15分)

雨燕双飞 提交于 2020-02-08 19:00:50
题目 本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。 函数接口定义: void StringCount ( char s [ ] ) ; 其中 char s[] 是用户传入的字符串。函数StringCount须在一行内按照 letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数 的格式输出。 裁判测试程序样例: # include <stdio.h> # define MAXS 15 void StringCount ( char s [ ] ) ; void ReadString ( char s [ ] ) ; /* 由裁判实现,略去不表 */ int main ( ) { char s [ MAXS ] ; ReadString ( s ) ; StringCount ( s ) ; return 0 ; } /* Your function will be put here */ 输入样例: aZ & 09 Az 输出样例: letter = 4 , blank = 3 , digit = 2 , other = 1 参考解答 void StringCount ( char s [ ] ) { int i = 0 , letter = 0 , blank = 0

小能MySQL笔记 第五课

冷暖自知 提交于 2020-02-08 18:28:00
接下来学习char,varchar,text,blob 字符串型 char----定长类型 varchar---变长类型 比如一张表 姓名char(6) 思考:在硬盘上寻找第三行的姓名并读出来 1.张三 2.李小欣 3.黄石因子 张三,两个字,李小欣三个字,黄石因子四个字,不考虑内容长度,不论够不够指定长度,实际都占据N个长度,如果不够N个长度,用空格在末尾补至N个长度。对于char(N),不够N个长度,用空格在尾补够N个长度,浪费了尾部 varchar(100),也能存储0-100字符。 姓名varchar(20) 1.张三 2.李小欣 3.黄石因子 生活中坐车,一种是不分远近,统一投币,对公司来说,效率高,省了一个售票员,但是近路相对吃亏,而长途车,加一个售票员,专门来记录,客户的站数。char相对于公交,varchar相当于长途车。 varchar(N)不用空格补齐,但列内容前,有1-2个字节来标志该列的内容长度。 create table test( -> ca char(6) not null default'', -> var varchar(6) not null default '' -> )engine myisam charset utf8; //concat函数,连接字符串用的 为什么char的空格不见了? char型,如果不够M个字符,内部用空格补齐

C++ const char *返回值问题

丶灬走出姿态 提交于 2020-02-08 11:58:07
今天写代码,遇到一个const char *返回值的问题,记录一下 问题场景:我写了一个动态库,有个函数声明如下: virtual const char * RGetAppToken(char *appToken, const char *userAccount, const char *userId) = 0; 函数定义如下: const char * HttpRequestImpl::RGetAppToken(char * appToken, const char * userAccount, const char * userId) { std::string message; // 省略中间逻辑...   message = GetAppToken(); return message.c_str(); } 然后通过控制台程序调用改动态库函数如下: std::string message; memset(appToken, 0, 256); message = httpRequest->RGetAppToken(appToken, userAccount.c_str(), accountId.c_str()); cout << "message: " << message; cout << "\tappToken: " << appToken << endl;

实验5

China☆狼群 提交于 2020-02-08 07:14:15
Part2 // 练习:使用二分查找,在一组有序元素中查找数据项 // 形参是数组,实参是数组名 #include <stdio.h> #include <stdlib.h> const int N=5; int binarySearch(int x[], int n, int item); // 函数声明 int main() { int a[N]={2,7,19,45,66}; int i,index, key; printf("数组a中的数据:\n"); for(i=0;i<N;i++) printf("%d ",a[i]); printf("\n"); printf("输入待查找的数据项: "); scanf("%d", &key); // 调用函数binarySearch()在数组a中查找指定数据项item,并返回查找结果给index // 补足代码① index=binarySearch(a,N,key);// ××× if(index>=0) printf("%d在数组中,下标为%d\n", key, index); else printf("%d不在数组中\n", key); system("pause"); return 0; } //函数功能描述: //使用二分查找算法在数组x中查找特定值item,数组x大小为n // 如果找到,返回其下标 // 如果没找到

20169217 2016-2017-2 《网络攻防实践》第十周学习总结

大兔子大兔子 提交于 2020-02-08 04:34:15
实践报告 和结对同学一起完成,分别作为攻击方和防守方,提交自己攻击和防守的截图 1)攻击方用nmap扫描(给出特定目的的扫描命令) 2)防守方用tcpdump嗅探,用Wireshark分析(保留Wireshark的抓包数据),分析出攻击方的扫描目 的和nmap命令 和赵京鸣一组,攻击机ip为222.28.132.218,靶机ip为222.28.132.98 首先查看了靶机的ip,然后进行ping通 靶机使用tcpdump嗅探,设置过滤条件,发现了攻击机的ip。 攻击机使用nmap的不同参数对靶机进行端口扫描 靶机使用Wireshark条件过滤攻击机发送的数据包,并进行分析 缓冲区攻击的原理 一. 缓冲区溢出的原理 通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。 例如下面程序: void function(char *str) { char buffer[16]; strcpy(buffer,str); } 上面的strcpy()将直接吧str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。存在象strcpy这样的问题的标准函数还有strcat(),sprintf(),vsprintf(),gets

20169217 2016-2017-2 《网络攻防实践》第九周学习总结

大城市里の小女人 提交于 2020-02-08 04:33:33
实践内容 nmap扫描端口 首先查看windows靶机地址 ip地址为222.28.133.127 靶机使用的操作系统是windows 2000 使用nmap -O 222.28.133.127 查看靶机的活跃端口,同样可以查看其开设了那些服务 使用nmap -sS 222.28.133.127 查看其tcp端口 使用nmap -sU 222.28.133.127 查看其udp端口 接下来是linux靶机,其实linux靶机操作基本类似,所以我试着挑战一下难度,使用nmap扫描了一台正常的unbantu linux虚拟机 首先查看linux虚拟机IP地址192.168.200.3 接下来同样使用nmap 扫描linux靶机,这是我惊奇的发现linux靶机竟然所有端口都是关闭的,这也是我本次实践遇到的最大问题,为啥一台linux主机的端口在没有设置的情况下要全部关闭? 教材内容总结 谍件 谍件(Spyware)与商业产品软件有关,有些商业软件产品在安装到用户机器上的时候,未经用户授权就通过Internet连接,让用户方软件与开发商软件进行通信,这部分通信软件就叫做谍件。用户只有安装了基于主机的防火墙,通过记录网络活动,才可能发现软件产品与其开发商在进行定期通讯。谍件作为商用软件包的一部分,多数是无害的,其目的多在于扫描系统,取得用户的私有数据。 远程访问特洛伊 远程访问特洛伊RAT

指针做函数参数—20200207

我怕爱的太早我们不能终老 提交于 2020-02-08 03:00:45
题目要求: 有一个字符串”1a2b3d4z”,要求写一个函数实现如下功能, 功能1:把偶数位字符挑选出来,组成一个字符串1。 功能2:把奇数位字符挑选出来,组成一个字符串2。 功能3:把字符串1和字符串2,通过函数参数,传送给main,并打印。 功能4:主函数能测试通过。 int getStr1Str2(char *souce, char *buf1, char *buf2); 代码如下: #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <stdio.h> int getodd_even_number(char* input, char* odd, char* even) { int ret = 0; if (input == NULL) { ret = -1; printf("func error:%d\n", ret); return ret; } char* p = input; while (*p) { *even = *p; p++; even++; *odd = *p; p++; odd++; } return ret; } int main() { int ret = 0; char buf[] = "1a2b3c4d"; char result_odd

C语言第三周

跟風遠走 提交于 2020-02-08 00:58:54
一. 字符串常量 只要有一对双引号括起来的字符序列就是字符串常量。列如“hello"接”123" 注意: “a"是字符串常量‘a'是字符常量。 二、字符串储存 字符串的结束标志是‘\0’。 列如: char str[6]={'h',‘e','l','l','o','0','\0'}; 三、学习过程中遇到的问题与解决 1、C语言中,为什么字符串可以赋值给字符指针变量? char *p,a='5'; p=&a; //显然是正确的, p="abcd" //但为什么也可以这样赋值? 问:一直理解不了为什么可以将字串常量赋值给字符指针变量,网上查资料学习了一下 答: 双引号做了3件事 : 1.申请了空间(在常量区),存放了字符串 2.在字符串尾加上了'/0' 3.返回地址 这里就是 返回的地址 赋值给了 p 二、char *p = “hello”; 上边的表达式为什么可以,而把p换成数组,然后再赋值就不行了 解释: 字符串常量"hello"出现在一个表达式中时,"hello"表达式使用的值就是这些字符所存储的地址(在常量区),而不是这些字符本身。 所以,可以把字符串赋值给指向字符的指针p,而不能把字符串赋值给一个字符数组。 char a[10] = “hello”; //这样可以,这种情况是c语言初始化所支持的 如果写成char a[10] 然后 a = “hello” 这样就错误了。

[C语言]指针与字符串

随声附和 提交于 2020-02-07 20:49:53
----------------------------------------------------------------------------- // main.c // Created by weichen on 15/2/1. // Copyright (c) 2015年 weichen. All rights reserved. #include <stdio.h> int main(int argc, const char * argv[]) { /*   取地址与获取大小:   1. 运算符sizeof可以给出某个类型或变量在内存中的字节数 2. scanf("%d", &a);里面的&为运算符;&用于获取变量的地址,其操作数必须是变量 3. &不能对没有的东西取地址,如:&(a++),&(++a);取地址符右边必须有一个变量   */ int a = 0; int b = (int)&a; //将a的地址强制类型转换为整型 printf("sizeof(a)=%ld\n", sizeof(a)); //4 printf("sizeof(int)=%ld\n", sizeof(int)); //4 //4. double变量在内存中占据的空间是int变量的两倍 //5. 地址的大小是否与int相同取决于编译器,取决于是32位还是64位架构,并不总是相同