
21:32:23 2019-06-01
今天回顾了C字符串函数,以及字符串函数的算法
首先,强调字符串函数在
1.strcmp函数

用法: intstrcmp(char * str1,char * str2);
功能: 字符串比较,相等返回0,不相等返回字符串中第一个不匹配字符的数值差(str1-str2,数值差: 也是ASCII的差)
算法实现
int mystrcmp(char *p1,char *p2) { // *p1,*p2 用来存储字符串str1,str2的首地址(也就是字符数组名) int i=0; while(p1[i]==p2[i]&&p1[i]!='\0') //从第一个字符开始比较,若相等且没有终止,一直向前 { i++; } int num; //用来代表返回值 if(p1[i]=='\0'&&p2[i]=='\0') //两字符串都结束的情况 { num=0; //判断为相等 } else { num=p1[i]-p2[i]; //讲字符ASCII码差值赋值给num } return num; }

2.strchr函数
用法: char * strchr(char * str,charc);
功能: 如果没有返回NULL,则查找字符串中给定字符的第一个出现位置,否则返回第一个出现位置的指针
算法实现:

char *mystrchr(char *str, char c) { if(str==NULL) { return NULL; } else { whlie(*str !='\0') { if((*str)==ch) // *str等价于 str[i],也就是字符串中的某个字符 { return str; break; //相等返回地址并退出循环 } str++; } return NULL; } }
3.strcat函数
用法: char * strcat(char * destin,char *源);
功能: 字符串拼接功能,成功返回第一个地址c strchr()函数的结果,否则返回NULL

算法实现:
char *mystrcat(char *str1, char *str2) { if (str1 == NULL || str2 == NULL) return NULL; char *p = str1;//用指针保存str1的首地址 while (*str1 != '\0') { str1++; } while (*str2 != '\0') { *str1 = *str2; str1++; } *str1 = '\0'; return p;//返回首地址 }
今天从这里开始,明天继续!
不要过多地依赖库函数,您必须自己实现它c strchr()函数的结果,这对您的理解和成长很有帮助.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-200755-1.html
你退它进
煽动反政府情绪
没办法