char函数

C语言字符串操作小结

狂风中的少年 提交于 2019-12-01 16:22:41
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素 strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 * 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 2)字符串到数值类型的转换 strtod(p, ppend) 从字符串 p 中转换 double 类型数值,并将后续的字符串指针存储到 ppend 指向的 char* 类型存储。 strtol(p, ppend, base) 从字符串 p 中转换 long 类型整型数值,base 显式设置转换的整型进制

C之输入输出函数(2) -- gets()

帅比萌擦擦* 提交于 2019-12-01 16:09:00
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/rtref/gets.htm#gets #include <stdio.h> char *gets(char *buffer); 从标准输入设备读入一行字符,直至读到换行符或者文件结束符为止,但不会把换行符或者文件结束符读入相应内存。 当读到换行符时,在相应内存处添加’\0’封印字符串。 警告:按照美国国土安全局的建议,永远不要使用gets()函数,因为它不会控制读入的字符数量。 https://www.us-cert.gov/bsi/articles/knowledge/coding-practices/fgets-and-gets_s 使用fgets()替代gets()。 char *fgets(char *string, int n, FILE *stream); 对于标准输入输出设备,这样使用即可: fgets(char *string, int n, stdin); 来源: https://www.cnblogs.com/freshair_cnblog/p/11692037.html

C语言工具函数

巧了我就是萌 提交于 2019-12-01 15:56:56
1 /************************************************* 2 *函数功能:根据步长分割字符串 3 *参数str:待处理的字符串 4 *参数step:步长 5 *返回值:返回处理得到的字符串 6 *备注:调用需包含string.h 7 *************************************************/ 8 char *strsplit(char *str,short step) 9 { 10 char bstr[1024] = {0};//转换缓冲区 11 static char *str_ptr = NULL; 12 static short idx = 0; 13 14 if(str) {str_ptr = str;idx = 0;} 15 else if(!str_ptr) {return NULL;} 16 if(idx>strlen(str_ptr)) {return NULL;} 17 strncpy(bstr,str_ptr+idx,step); 18 idx += step; 19 20 return bstr; 21 } 22 23 /************************************************/ 24 //用例:按步长4分割字符串

C语言工具函数

落爺英雄遲暮 提交于 2019-12-01 15:48:42
根据步长切割字符串:strsplit 1 /************************************************* 2 *函数功能:使用newstr替换oldstr,若newstr为空,则表示删除 3 *参数str:待处理的字符串 4 *参数oldstr:旧字符串 5 *参数newstr:新字符串(可传NULL) 6 *返回值:返回处理得到的字符串 7 *备注:调用需包含string.h 8 *************************************************/ 9 char *strrpc(char *str,char *oldstr,char *newstr) 10 { 11 char bstr[1024] = {0};//转换缓冲区 12 int i = 0; 13 14 if(!str||!oldstr) return NULL; 15 for(i=0;i<strlen(str);i++) 16 { 17 if(!strncmp(str+i,oldstr,strlen(oldstr))) 18 {//查找目标字符串 19 if(newstr!=NULL) {strcat(bstr,newstr);}//newstr参数若为NULL,则表示删除字符串 20 i += strlen(oldstr)-1; 21 }else

C语言工具函数

早过忘川 提交于 2019-12-01 15:32:59
1 /************************************************* 2 *函数功能:根据步长切割字符串 3 *参数str:待分割的字符串 4 *参数step:步长 5 *返回值:返回切割得到的字符串 6 *备注:调用需包含string.h 7 *************************************************/ 8 char *strsplit(char *str,short step){ 9 char bstr[1024] = {0};//转换缓冲区,内存不足可调小 10 static char *str_ptr = NULL; 11 static short idx = 0; 12 13 if(str) {str_ptr = str;idx = 0;} 14 if(idx>strlen(str_ptr)) {return NULL;} 15 strncpy(bstr,str_ptr+idx,step); 16 idx += step; 17 18 return bstr; 19 } 20 21 /************************************************/ 22 //用例:转换16进制字符串 23 /************************************

C语言指针

邮差的信 提交于 2019-12-01 15:17:06
C语言是一款强大的语言,也是一本比较简单容易上手的编程语言,但是C语言也有重点难点,那就是指针和链表,我一直不得其门而入,现在我想记录下所有我在学习指针和链表过程中的重点。 指针的含义 相信很多在学指针的你们应该都能在网上看到了一个说法,那就是C语言的指针其实也是属于变量,只不过这是一种特殊的变量,是用来保存变量地址的变量。 指针的用处 看下面的代码例子: #include "pch.h" #include <stdio.h> void change(int x, int y) { int temp = x; x = y; y = temp; } int main() { int a = 3; int b = 6; change(a, b); printf("a=%d,b=%d\n", a, b); return 0; } a和b通过change方法交换值,这个方法貌似没什么问题,然而输出的结果却是两个值并没有交换。 结果显示依然是a=3,b=6。为什么会这样呢,我是学C#出身的,更加不能理解结果会是这样,但是我忘记了,C语言是面向过程的语言,并不像C#是面向对象的语言。 C语言普通的函数参数是传值的参数,main函数中的a和b与函数change的参数x和y是不同的值,虽然a通过change函数传值,使得a和x的值相等,但是也仅仅是值相等,两个值的地址并不是同一个地址,所以

结对项目(唐崇珂——谭艺)

孤街醉人 提交于 2019-12-01 13:35:13
一、Github与源代码 https://github.com/wuchengttt/hello-world 源代码 主函数 int main() {  //检测是否存在这两个文件,如果没有就新建 FILE *fp; fp = fopen("Exercises.txt", "w+"); fclose(fp); fp = fopen("Answers.txt", "w+"); fclose(fp); int range = 0; printf("请输入产生几以内的数字:"); scanf_s("%d", &range); printf("\n请输入产生多少个运算表达式:"); scanf_s("%d", &num); int right1 = 0; int wrong1 = 0; char(*result)[LENGTH] = (char(*)[LENGTH])malloc(sizeof(char)*LENGTH*num); int i; for (i = 1; i <= num; i++) {//随机生成四个数字 //char expArr[2];//定义生成的题目 int a = (int)(random(range));//分子 int b = (int)(random(range));//分母 int c = (int)(random(range));//另一个分子 int

字符串函数

元气小坏坏 提交于 2019-12-01 13:07:04
—————————————————————————————————————————————————— —————————————————————前排护眼——————————————————————— —————————————————————————————————————————————————— strcat --字符串连接 strcat(char *str1 , char *str2); //把str2连接到str1后面 strcpy --字符串拷贝 strcpy(char *str1 , char *str2); //把str2拷贝到str1中 strcmp --字符串比较 strcmp(char *str1 , char *str2); //将两字符串逐个字符比较,直到出现不同字符或遇到‘\0’; // if (str1==str2) 返回 0; // if (str1>str2) 返回一正整数; // if (str1<str2) 返回一负整数; strlen --测字符串长度 strlen (char *str) ; 返回‘\0'前的字符长度,不含'\0'; strlwr --转换为小写字母 strlwr (char *str) ; strupr --转换为大写字母 strupr (char *str); strstr --寻找子串出现位置 strstr (char

字符串函数构析

允我心安 提交于 2019-12-01 12:07:44
字符串函数构析 今日参加了一场笔试,刚好程序题问到一道strcpy函数构建,刚好之前看过字符串函数,同时网上文章大部分都是介绍了下函数的用法,缺少了函数的实现,今日就来自己构析下常见的字符串函数,字符串函数位于标准库的头文件string.h中,在使用函数时需引用该文件 strlen 函数原型 :size_t strlen(const char *s) 函数功能 :返回s的字符串函数(不包含结尾的0) 函数构析: size_t strlen(const char *s) /*size_t在不同架构下分别代表 unsigned int和 unsigned long*/ { int idx = 0; while(s[idx]!='\0') { idx++; } return idx; } strcmp 函数原型 :int mycmp(const char *s1,const char *s2) 函数功能 :比较两字符串,返回值为三种结果(以ascii码表对比) 0:s1==s2 正数:s1>s2 负数:s1<s2 函数构析: int mycmp(char *s1,const char *s2) { while(*s1 == *s2 && *s1 != '\0') { s1++; s2++; } return *s1 - *s2; } strcpy 函数原型 :char *strcpy

结对编程

时光怂恿深爱的人放手 提交于 2019-12-01 11:58:52
结对伙伴学号 201831061427 结对伙伴姓名 赵强 伙伴博客地址 https://www.cnblogs.com/Drac/ Github地址 https://github.com/dracssr/WordCount PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 60 Estimate 估计这个任务需要多少时间 40 30 Development 开发 200 200 Analysis 需求分析 (包括学习新技术) 50 40 Design Spec 生成设计文档 20 20 Design Review 设计复审 (和同事审核设计文档) 25 25 Coding Standard 代码规范 (为目前的开发制定合适的规范) 15 15 Design 具体设计 100 80 Coding 具体编码 600 630 Code Review 代码复审 25 20 Test 测试(自我测试,修改代码,提交修改) 30 50 Reporting 报告 30 20 Test Report 测试报告 25 30 Size Measurement 计算工作量 30 20 Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计 40