printf("my_strcpy(c1,c2):%s\n", my_strcpy(c1, c2));//printf("%s\n", my_strcpy(c1, c3));//不能处理这种超出范围的,程序会崩溃!!printf("my_strcmp(c1,c2):%d\n", my_strcmp(c1, c2)); printf("my_strcmp(c2,c3):%d\n", my_strcmp(c2, c3)); printf("my_strcat(c3,c2):%s\...
printf("after strcpy is: %s\n",my_strcpy(str1,str2)); //strcat实现 char str3[100] = "I love you,"; char str4[100] = "LongRu!"; printf("after strcat is: %s\n",my_strcat(str3,str4)); //strcmp实现 char str5[100] = "c"; char str6[100] = "b"; printf("after strcm...
strcat的模拟实现一 代码语言:javascript 复制 char*my_strcat(char*dest,constchar*src){char*ret=dest;assert(dest&&src);检查参数是否合法。//1. 找到目标空间的\0使用while循环找到dest字符串的结束'\0'字符,dest指针指向字符串结束后的位置。while(*dest){dest++;}//2. 拷贝while(*dest++=*src++){;}...
1. 字符串反转 - strRev 2. 字符串复制 - strcpy 3. 字符串转化为整数 - atoi 4. 字符串求长 - strlen 5. 字符串连接 - strcat 6. 字符串比较 - strcmp 7. 计算字符串中的元音字符个数 8. 判断一个字符串是否是回文 1. 写一个函数实现字符串反转 版本1 - while版 void strRev(char *s) { ch...
int strcmp ( const char* src, const char* dst ) { int ret = 0 ; while(!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst) ++src, ++dst; if ( ret < 0 ) ret = -1 ; else if ( ret > 0 ) ret = 1 ; ...
returnstrDest;//为了实现链式操作,将目的地址返回}intmain(){charstr1[99]="The";charstr2[99]="One";printf("%s ",strcat(str1,str2));return0; }输出结果为TheOne 如果怀疑strcat函数本身发挥作用的话可以将调用的函数名称改成strcate之类的 结果也一样哦 来 试试看~strcpy的用法及原型登录后复制...
三.strcat函数模拟 四.strcmp函数模拟 总结 ⼀.strlen函数模拟 字符串以‘\0’作为结束标志,strlen函数返回的是在字符串中‘\0’前⾯出现的字符个数(不包括‘\0’);有三种⽅法可以实现该操作:①计数器⽅式 ②不能创建临时变量计数器 ③指针-指针 ⽅法⼀:计数器⽅式 int my_strlen(const char...
intstrcmp(constchar*s1constchar*s2){assert((s1!=NULL)&&(s2!=NULL));while(*s1==*s2){if(*s1=='\0')return0;++s1;++s2;}return*s1-*s2;} 4、strcat char*strcat(constchar*dest,constchar*src){assert((dest!=NULL)&&(src!=NULL));char*ret=dest;while(*dest!='\0'){++dest;}while(...
因为函数strlen 求的是字符串中’\0’之前的字符个数,但是上面的两个字符串(C语言没有字符串类型,我们放到了字符数组中)中没有’\0’,所以strlen函数就会一直向后寻找,直至遇到’\0’,但数组后面的内存空间放的是什么我们是不知道的,所以我们不知道什么时候会遇到’\0’,因此结果是一个随机值。注意函数...
1、Strcat 函数原型如下 char *strcat(char *strDest, const char *strScr) //将源字符串加 const 表明其为输入参数 { char * address = strDest; //该语句若放在 assert 之后 编译出错 assert((strDest != NULL) && (strScr != NULL)); //对源地址和目的地址加非 0 断言 while(*strDest) //是...