1、strcat(字符串连接函数)
一般形式strcat(字符数组1,字符数组2),将字符串2接到字符串1后面
char* my_strcat(char* StrDest, const char* StrSrc) { char *des = StrDest; assert((StrDest!=NULL)&&(StrSrc!=NULL)); while (*StrDest) { StrDest++; }//StrDeest指向'\0',可以直接赋值吗? while (*StrDest++= *StrSrc++);
*StrDest='/0'; return des; }
调用时两个参数要传字符数组,字符数组必须足够大到可以容纳字符数组2
int main() { char str1[20] = "I am "; char str2[10] = "a student"; puts(my_strcat(str1, str2)); }
2、strcpy(字符串复制函数)
一般形式strcpy(字符数组1,字符串2),将字符串2复制到字符数组1中去
char* my_strcpy(char* StrDest,const char* StrSrc) { char *des = StrDest; assert((StrDest!=NULL)&&(StrSrc!=NULL)); while (*StrDest++ = *StrSrc++);//<- return des; } int main() { char str1[20] = "I am 345453656"; char str2[]="a student"; puts(my_strcpy(str1, "ccc"));//ccc puts(my_strcpy(str1, str2));//a student
不能用赋值语句将字符串常量或字符数组给字符数组(用strcpy函数)
str1="china";
str1=str2;
3、strlen(字符串长度)
一般形式strcpy(字符数组)
int my_strlen(const char* str) { assert(str != NULL); int len = 0; while (*str++!='\0') { len++; } return len; }
4、strcmp(字符串比较函数)
一般形式strcpy(字符串1,字符串2),比较字符串1和字符串2
int my_strcmp(const char* strDest, const char* strSrc) { assert(strDest != NULL && strSrc != NULL);
const char* pDest = strDest; const char* pSrc = strSrc; int result = 0; while (*pDest != '\0' || *pSrc != '\0') { if ((result = *pDest - *pSrc) != 0) { break; //当两字符不相等时跳出,相等是继续往后指 } pDest++; pSrc++; } if (result > 0) { result = 1; } else if (result<0) { result = -1; } return result; }