读书笔记--C 指针实现各项字符串操作

来源:互联网 发布:淘宝开店帮助 编辑:程序博客网 时间:2024/06/05 18:14

#include <stdio.h>/* strcpy函数:将指针指向的字符串复制到指针s指向的位置;使用指针方式实现的版本3 */void strcpy( char *s,char *t) {while(*s++=*t++);}/* strlen函数:求字符串长度*/int strlen(char *s){int n;for(n = 0;*s != '\0';s++)n++;return n;}/* strcmp函数:根据s按照字典顺序小于、等于或者大于t的结果分别返回负整数、0或正整数*/int strcmp(char *s,char *t){for(;*s == *t;s++, t++)   if(*s == '\0')   return 0;return *s - *t;}/* strcat函数:将t指向的字符串复制到s指向的字符串尾部*/void strcat(char *s,char *t){   while(*s)   s++; /*    为什么不能写成 while(*s++)?   while(*s++)语句,当*s='\0'时,while语句判断循环条件是否为0,判断结束后,依然还是要执行*s++;所以当执行完while(*s++);后,*s指向'\0'的下一个位置。*/   while(*s++ = *t++)   ;}/* strncpy函数: 将t中最多前n个字符复制到s中,若t复制完,则s用'\0'结尾*/void strncpy(char *s,char *t, int n){while(*t && n-- > 0)*s++ = *t++;while(n-- > 0)*s++ = '\0';/*while( n-- ){if(*t)          *s++ = *t++;else   *s++ = '\0';    }*/}/* strncat函数:从字符串t中最多复制n个字符到字符串s的尾部*/void strncat(char *s,char *t,int n){   void strncpy(char *s,char *t,int n);   int strlen(char *);   strncpy(s + strlen(s),t,n);}/* strncmp函数:将字符串t和s前n个字符进行比较 */int strncmp(char *s,char *t,int n){    for(; *s == *t; *s++,*t++)if(*s == '\0' || --n <= 0)return 0;return *s - *t;}int main(){int n;char a[15]="hello world!";char b[15]="welcome!";char *p=a,*q=b;   n = strncmp(p,q,2);printf("%d \n",n);return 0;}


MARK 待补充..