千家信息网

C语言字符串操作函数的实现方法

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,本篇内容介绍了"C语言字符串操作函数的实现方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#inc
千家信息网最后更新 2024年11月28日C语言字符串操作函数的实现方法

本篇内容介绍了"C语言字符串操作函数的实现方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

#include #include #include /*******string库函数集合********/int my_strlen(const char *str){ int ret = 0; assert(str != NULL); while(*str++ != '\0')  ++ret; return ret;}/*******不得自定义变量*********/int my_strlen2(const char *str){ if((*str) == '\0')  return 0; else  return (1 + my_strlen(++str));}//=========字符串查找=========//char *my_strstr(char *strSrc, char *substr){ int i, j; int lenstr, sublen; int num; if(strSrc == NULL || substr == NULL)  return NULL; lenstr = strlen(strSrc); sublen = strlen(substr); if(lenstr < sublen)  return NULL; num = lenstr - sublen; for(i = 0; i <= num; i++) {  for(j = 0; j < sublen; j++)  {   if(strSrc[i+j] != substr[j])    break;  }  if(j == sublen)   return (strSrc + i); } return NULL;}char *my_strstr2(const char *strSrc, const char *str){ assert(strSrc != NULL && str != NULL); const char *s = strSrc; const char *t = str; for(; *strSrc != '\0'; ++strSrc) {  for( s= strSrc, t = str; (*t != '\0') && (*s == *t); ++s, ++t )  {  }  if(*t == '\0')   return (char *)strSrc; } return NULL;}//=========字符串拷贝=========//char *my_strcpy(char *strDst, char *strSrc){ if(strDst == strSrc)  return strDst; assert( (strDst != NULL) && (strSrc != NULL) ); char *address = strDst; while( (*strDst++ = *strSrc++) != '\0'); return address;}char *my_strncpy(char *strDst, char *strSrc, int count){ assert(strDst != NULL && strSrc != NULL); char *address = strDst; while((count--) && (*strSrc != '\0'))  *strDst ++ = *strSrc++; *strDst = '\0'; return address;}//==========字符串链接=========//char *my_strcat(char *strDst, const char *strSrc){ assert((strDst != NULL) && (strSrc != NULL)); char *address = strDst; while(*strDst != '\0')  ++ strDst; while((*strDst++ = *strSrc++) != '\0'); return address;}char *my_strncat(char *strDst, const char *strSrc, unsigned int count){ assert((strDst != NULL) && (strSrc != NULL)); char *address = strDst; while(*strDst != '\0')  ++strDst; while(count-- && *strSrc != '\0')  *strDst++ = *strSrc++; *strDst = '\0'; return address;}//=========将字符串所有替换成字符=========//char *my_strset(char *str, int c){ assert(str != NULL); char *s = str; for(; *s != '\0'; ++s)  *s = (char)c; return str;}char *my_strnset(char *str, int c, unsigned int count){ assert(str != NULL); char *s = str; for(; (*s != '\0') && ((s - str) iCount)   {    iCount = iTemp;    strDst = strTemp;   }   if((*strSrc)=='\0')    break;  }  strSrc++; } return strDst;}//========================================================// 题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。// 分析:这道题是2006 年google 的一道笔试题。// 思路:将所有出现的字符的个数存储在数组a中//========================================================char first_single_char(char *str){ int a[255]; char *p = str; memset(a, 0, 255*sizeof(int)); while(*p != '\0') {  a[*p] ++;  p++; } p = str; while((*p) != '\0') {  if(a[*p] == 1)   return *p; } return '\0';}花了一个下午,终于搞定。

"C语言字符串操作函数的实现方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0