C语言库函数源代码.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言库函数源代码.docx》由会员分享,可在线阅读,更多相关《C语言库函数源代码.docx(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C语言库函数源代码 strstr ( )/* - C语言库函数源代码 - */ /*得到s1中第一次包含s2字符串的位置指针。*/#include <stdlib.h>char * my_strstr(const char *s1,const char *s2)if (*s1 = 0)if (*s2)return (char *) NULL;return (char *) s1;while (*s1)size_t i;i = 0;while (1)if (s2i = 0)return (char *) s1;if (s2i != s1i)break;i+;
2、s1+;return (char *) NULL;int main()char *str1 = "ammana_babi"char *str2 = "babi"char *p;if( (p = my_strstr(str1,str2) = NULL)printf("Can't find the string "%s"!n",str2);elseprintf("Find the string "%s"!n",p);str1 = "abc"str2 =
3、 "def"if( (p = my_strstr(str1,str2) = NULL)printf("Can't find the string "%s"!n",str2);elseprintf("Find the string "%s"!n",p);system("pause");return 0; strpbrk ( )/* - C语言库函数源代码 - */ /*得到s1中第一个且是s2中字符的位置指针。*/#include <stdlib.h>cha
4、r * my_strpbrk(const char *s1 ,const char *s2)const char *c = s2;if (!*s1)return (char *) NULL;while (*s1)for (c = s2; *c; c+)if (*s1 = *c)break;if (*c)break;s1+;if (*c = '0')s1 = NULL;return (char *) s1;int main()char *str1 = "ammana_babi"char *str2 = "babi"char *p;if( (
5、p = my_strpbrk(str1,str2) = NULL)printf("No same character!n");elseprintf("%cn",*p);str1 = "abc"str2 = "def"if( (p = my_strpbrk(str1,str2) = NULL)printf("No same character!n");elseprintf("%cn",*p);system("pause");return 0; strcspn
6、 ( )/* - C语言库函数源代码 - */ /*得到s1中第一个且是s2中字符的字符位置。*/int my_strcspn(const char *s1 ,const char *s2)const char *s = s1;const char *p;while (*s1)for (p = s2; *p; p+)if (*s1 = *p)break;if (*p)break;s1+;return s1 - s;int main()char *str1 = "ammana_babi"char *str2 = "babi"int offset;if(of
7、fset = my_strcspn(str1,str2) >= strlen(str1)printf("Can't find the same character!n");elseprintf("%cn",*(str1 + offset);str1 = "abc"str2 = "def"if(offset = my_strcspn(str1,str2) >= strlen(str1)printf("Can't find the same character!n");e
8、lseprintf("%cn",*(str1 + offset);system("pause");return 0;strspn ( )/* - C语言库函数源代码 - */ /*得到s1中第一 个且不是s2中任意字符的字符位置。*/int my_strspn(const char *s1 ,const char *s2)const char *s = s1;const char *p;while (*s1)for (p = s2; *p; p+)if (*s1 = *p)break;if (*p = '0')break;s1+;retu
9、rn s1 - s;int main()char *str1 = "ammana_babi"char *str2 = "babi"int offset;if(offset = my_strspn(str1,str2) >= strlen(str1)printf("Can't find the different character!n");elseprintf("%cn",*(str1 + offset);str1 = "abc"str2 = "abc"if(o
10、ffset = my_strspn(str1,str2) >= strlen(str1)printf("Can't find the different character!n");elseprintf("%cn",*(str1 + offset);system("pause");return 0;strrev ( )/* - C语言库函数源代码 - */ /*Reverses the order of characters in the string.The terminating null character rem
11、ains in place.把字符串的所有字符的顺序颠倒过来(不包括空字符NULL)。返回指向颠倒顺序后的字符串指针。*/char * my_strrev(char *str)char *right = str;char *left = str;char ch;while (*right) right+;right-;while (left < right)ch = *left;*left+ = *right;*right- = ch;return(str);/*而我自己写的代码就略微显的有些啰里啰嗦,不简洁,更不是很太爽快。这个问题是值得好好想一下的了。下面就是我的垃圾代码*/char
12、 * my_StrReverse(char * ch)char tempch,* tch;int Len,i;tch = ch;Len = strlen(ch);for(i=0;i<Len/2;i+)tempch = *tch;*tch = *(tch + Len - 2*i - 1);*(tch+Len-2*i-1) = tempch;tch+;return ch;int main()char str ="ammana_babi"puts(my_strrev(str);puts(my_StrReverse(str);system("pause")
13、;return 0; strnset ( )/* - C语言库函数源代码 - */ /*Sets the first count characters of string the character value.If the length of string is less than count, the length of string is used in place of n.把字符串的前count个字符设置为字符val。*/char * my_strnset(char * str,int val,int count)char *p = str;while (count- &&a
14、mp; *p)*p+ = (char)val;return(p);int main()char str ="ammana_babi"my_strnset(str,'*',strlen(str)-4);puts(str);system("pause");return 0;strset ( )/* - C语言库函数源代码 - */ /*Sets all of characters in string (except the terminating '/0'character) equal to val.把字符串的所有字符都设置
15、为字符val。*/char * my_strset(char *str,int val)char *p = str;while (*str)*str+ = (char)val;return(p);int main()char str ="ammana_babi"my_strs et(str,'z');puts(str);system("pause");return 0;strupr ( )/* - C语言库函数源代码 - */ /*Force string to lower case。将字符串转换为大写。只改变字符串中出现的小写字母,不改
16、变其他字符。*/char * my_strupr(char *str)char *p = str;while (*p != '0')if(*p >= 'a' && *p <= 'z')*p -= 0x20;p+;return str;int main()int i;char str1= "Ammana"char str2 = "baBi"char str3 = "AMMANA"char str4 = "aMmAn_BabI" puts(my
17、_strupr(str1);puts(my_strupr(str2);puts(my_strupr(str3);puts(my_strupr(str4);system("pause");return 0;strlwr ( )/* - C语言库函数源代码 - */ /*Force string to lower case。将字符串转换为小写。只改变字符串中出现的大写字母,不改变其他字符。*/char * my_strlwr(char *str)char *p = str;while (*p != '0')if(*p >= 'A' &
18、;& *p <= 'Z')*p = (*p) + 0x20;p+;return str;int main()int i;char str1= "Ammana"char str2 = "baBi"char str3 = "AMMANA"char str4 = "aMmAn_BabI"puts(my_strlwr(str1);puts(my_strlwr(str2);puts(my_strlwr(str3);puts(my_strlwr(str4);system("pause&q
19、uot;);return 0;strdup ( )/* - C语言库函数源代码 - */ /*Allocates enough storage via malloc() for a copy of the string, copies the string into the new memory, and returns a pointer to it.复制字符串,返回指向被复制字符串的指针。所需空间由malloc()分配,且可以由free()释放。需要注意的是,在调用完这个函数后,一定要记得释放内存空间吆。*/#include <stdlib.h>int my_strlen (
20、const char * str )const char *p = str;while( *p+ ) ;return( (int)(p - str - 1) );char * my_strcpy(char * dst, const char * src)char * cp = dst;while( *cp+ = *src+ ) ; return( dst );char * my_strdup(const char *str)char *p;if (!str)return(NULL);if (p = malloc(my_strlen(str) + 1)return(my_strcpy(p,str
21、);return(NULL);int main()char *str = "ammana_babi"char *p;p = my_strdup("ammana_babi");puts(p);free(p);system("pause");return 0;strrchr ( )/* - C语言库函数源代码 - */ /*Finds the last occurrence of ch in string. The terminating null character is used as part of the search.查找在字符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 库函数 源代码
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内