归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言📝
但行前路,不负韶华!
目录
一、strcat:
#include<stdio.h>
char my_strcat(char *p,char *q);//函数声明
int main(){
char str1[81],str2[81];
gets(str1);//从键盘上输入字符串
gets(str2);
my_strcat(str1,str2);
puts(str1);
return 0;
}
char my_strcat(char *p,char *q){
while(*p){
p++;//让p指向str1的结束下标
}
while((*p++=*q++)!='\0');//连接
return *p;
}
二、strcmp:
#include<stdio.h>
int mystrcmp(char *p,char *q);//函数声明
int main(){
char str1[81],str2[81];
int a;
gets(str1);
gets(str2);
a=mystrcmp(str1,str2);
printf("%d",a);
return 0;
}
int mystrcmp(char *p,char *q){
for(;*p&&*q;p++,q++){//比较字符大小
if(*p==*q){
continue;//如果相等,继续循环,比较下一个
}
break;//如果不相等,结束循环
}
if(*p-*q>0){
return 1;//str1>str2
}
else if(*p-*q<0){
return -1;//str1<str2
}
else {
return 0;//str1=str2
}
}
三、strcpy:
#include<stdio.h>
char mystrcpy(char *p,char *q);
int main(){
char str1[81],str2[81];
gets(str1);
gets(str2);
mystrcpy(str1,str2);
puts(str1);
return 0;
}
char mystrcpy(char *p,char *q){
while(*p++=*q++);
return *p;
}
四、strlen:
#include<stdio.h>
int mystrlen(char *p);
int main(){
char str[81];
int a;
gets(str);
a=mystrlen(&str[0]);
printf("%d",a);
return 0;
}
int mystrlen(char *p){
char *q;
q=p;//q指向数组的起始地址
for(;*p;p++);//p指向结束标记
return p-q;//偏移的值就是字符串长度
}
五、总结:
这4个字符串函数,都利用了地址传递的方式,传递了字符串数组的起始的值,准确的说是字符串数组元素的指针。
最后,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。若这篇文章中有哪些不正确的内容,欢迎大家在评论区和我交流讨论!