字符串函数实现(strlen,strcpy,strcmp,strcat,strrev)
生活随笔
收集整理的這篇文章主要介紹了
字符串函数实现(strlen,strcpy,strcmp,strcat,strrev)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
聲明:以下代碼可能并非最佳方法,若有錯(cuò)誤疑問歡迎提出!!!
strlen函數(shù)
#include<stdio.h> #include<string.h>int mylen(char *str) {int cnt=0;while(str[cnt]!='\0')cnt++;return cnt; } int main() {char s[]="hello";printf("%d\n",mylen(s));printf("%d",strlen(s));return 0; }strcpy函數(shù)
#include<stdio.h> #include<string.h>char* mycpy(char *p,const char *q) {char *a=p;while(*q!=NULL)*p++=*q++;*p='\0';//p已經(jīng)移動(dòng)到最后一位,需要一個(gè)變量能找到它的地址,該變量就是a return a; } int main() {char q[]="hello";char p[]="\0";printf("%s\n",mycpy(p,q));printf("%s",strcpy(p,q));return 0; }strcmp函數(shù)
/* 主要思想是遍歷兩個(gè)字符串的相同部分,直到不同時(shí)比較不同字符的大小; */ #include<stdio.h> #include<string.h>int mycmp(char *p,char *q) {while(*p==*q&&*p!='\0'){p++;q++;}if(*p-*q>0)return 1;if(*p-*q<0)return -1;if(*p-*q==0)return 0; } int main() {char p[]="hello";char q[]="hi";printf("%d\n",mycmp(p,q));printf("%d",strcmp(p,q));return 0; }strcat函數(shù)
#include<stdio.h> #include<string.h>char *mycat(char *p,char *q) {char *a=p;while(*p!='\0')p++;while(*q!=NULL)*p++=*q++;return a; } int main() {char q[]="world!!!";char p[]="hello ";printf("%s\n",mycat(p,q)); // printf("%s",strcat(p,q));return 0; }strrev函數(shù)
/* 思路參考順序鏈表的逆置函數(shù)inversion */ #include<stdio.h> #include<string.h>char *myrev(char *str) {int top=0;int bottom=-1;char *a=str;char t;while(*a!='\0'){a++;bottom++;}while(top<bottom){t=str[top];str[top]=str[bottom];str[bottom]=t;top++;bottom--;}return str; } int main() {char a[]="hello";printf("%s\n",myrev(a));printf("%s",strrev(a));return 0; }總結(jié)
以上是生活随笔為你收集整理的字符串函数实现(strlen,strcpy,strcmp,strcat,strrev)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 203. 移除链表元素(C语言)
- 下一篇: 环形链表。