欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 【C语言】关于字符串函数的使用及模拟实现(1)

【C语言】关于字符串函数的使用及模拟实现(1)

2025/9/28 2:28:20 来源:https://blog.csdn.net/2402_83162616/article/details/139610406  浏览:    关键词:【C语言】关于字符串函数的使用及模拟实现(1)

一、字符串追加

1.1  库函数srecat的使用

5aa90df70ab34ec3b116dfffbd230411.png

 1.2  库函数strncat的使用

165ebea84fed4ab895ead75dd7d9a7ae.png

1.3  模拟实现库函数 strcat 及 strncat

由上可知,字符串追加的原理是找到所添加字符串的 \0 位置,再对其进行添加。

代码1、

526b82401c39455c888dfe9a69968842.png

637a011806a14937815f648bbeb87e7e.png

代码2、

d7b5e02726ee4b51a68328216bb7a6ad.png

 


 

二、字符串查找

2.1  库函数strstr的使用

使用strstr函数可以快速的定位到所查找字符串的地址。

26c0c74f68c941e59d8da67c9f3a620e.png

bfca0a3ec95c4e60992688048ed4790a.png

2.2  模拟实现库函数 strstr

//模拟实现字符串查找
#include<stdio.h>
char* my_strstr(const char* a,const char* b){const char* a1 = a;  const char* b1 = b;  const char* p = a;    // 记录从字符串a开始查找的位置if(*b == '\0'){return (char*)a;}while(*p){a1 = p;b1 = b;  // 重置指向字符串b的指针while(*a1 && *b1 && (*a1 == *b1)){a1++;b1++;}if(*b1 == '\0'){ //表示已查完,返回开始查找的位置return (char*)p;}p++;}return NULL; //未查找到
}int main(){char a[20] = "hongshaorou";char b[] = "shao";char * ret = my_strstr(a,b);if(ret == NULL){printf("没找到");}else{printf("找到了:%s\n",ret);	}return 0;
}

 


 

三、求字符串长度

3.1 库函数strlen的使用

记录 ' \0 ' 之前的字符数。

75be6a32369447c4923261490f583ac6.png

3.2 模拟实现库函数strlen

68bb1b570076487fa4fe2ae12e0f51e6.png

注意:在库函数中strlen的返回类型为suze_t(无符号整型),我们这里的返回类型为int型。

 代码1

#include<stdio.h>
int my_strlen(const char* a){int count = 0;while(*a){a++;count++;}return count;
}int main(){char a[] = "hello";int len = my_strlen(a);printf("%d\n",len);return 0;
}

代码2

#include<stdio.h>
int my_strlen(const char* a){const char* p = a;while(*a){a++;}return (int)(a-p);
}
int main(){char a[] = "hello";int len = my_strlen(a);printf("%d\n",len);return 0;
}

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词