c语言字符操作算法总结,C语言字符串函数1的算法实现

c语言字符操作算法总结,C语言字符串函数1的算法实现_第1张图片

21:32:23 2019-06-01

今天回顾了C字符串函数,以及字符串函数的算法

首先,强调字符串函数在头文件中

1.strcmp函数

c语言字符操作算法总结,C语言字符串函数1的算法实现_第2张图片

用法: 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

}returnnum;

}

c语言字符操作算法总结,C语言字符串函数1的算法实现_第3张图片

2.strchr函数

用法: char * strchr(char * str,charc);

功能: 如果没有返回NULL,则查找字符串中给定字符的第一个出现位置,否则返回第一个出现位置的指针

算法实现:

2de4be241251e6c694ba91dc758aad4d.png

char *mystrchr(char *str, charc)

{if(str==NULL)

{returnNULL;

}else{

whlie(*str !='\0')

{if((*str)==ch) //*str等价于 str[i],也就是字符串中的某个字符

{returnstr;break; //相等返回地址并退出循环

}

str++;

}returnNULL;

}

}

3.strcat函数

用法: char * strcat(char * destin,char *源);

功能: 字符串拼接功能,成功返回第一个地址c strchr()函数的结果,否则返回NULL

c语言字符操作算法总结,C语言字符串函数1的算法实现_第4张图片

算法实现:

char *mystrcat(char *str1, char *str2)

{if (str1 == NULL || str2 ==NULL)returnNULL;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

你可能感兴趣的:(c语言字符操作算法总结)