读书笔记--C 指针实现各项字符串操作
2013-01-06 00:38
239 查看
#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 待补充..
相关文章推荐
- 字符串基本处理操作:数组和指针实现 —— 不调用string函数库
- 字符串操作函数实现
- c语言自定义方法实现字符串的7个操作
- shell字符串操作之cut---实现字符串截取
- 使用angularjs 去掉字符串最后的几个字符,从而实现trim的操作
- C字符串操作:两头堵实现trim()
- C语言模拟实现字符串操作函数
- 【算法学习】AVL平衡二叉搜索树原理及各项操作编程实现(C++)
- C和指针之字符串之实现strcpy函数
- 数据结构之二叉排序树(基于指针实现基本操作)
- 输入n个整数,编写函数实现以下操作,要求用指针实现: (1) 对n个数进行排序; (2) 将从指定位置的m个数逆序存放,例如:原序列为2,4,6,8,10,12,14,16,18,20,若要求把
- C语言字符串的常见特殊操作(除了string.c实现的那些接口)
- <2012 12 17> C标准库中一些字符串操作函数的实现
- 关于字符串操作的一个小例子(递归实现)
- 如何手动实现C语言中的字符串操作
- 问题九:编写函数stringcat,实现字符串的连接,程序中需要使用指针形式访问字符串
- ruby 操作字符串 实现关键字搜索功能
- 如何用Python高效实现下面这样的字符串拼接操作?
- 字符串操作的实现:strstr、strcat、strcmp和stcpy
- shell字符串操作(长度,查找,替换,匹配)详解(shell内置一系列操作符号实现)