我的C/C++之路-009课(字符串操作&重写C系统一些字符串操作函数)
2012-04-30 01:28
519 查看
花了一个多小时,终于把这些写完了,贴贴出来和大家分享下,都是关于字符串操作的,不懂请留言,注释都很清楚的
#include<stdio.h> /** 字符串操作&重写C系统一些字符串操作函数 strcpy strcmp strcat */ void strReplace(char *,char *,int ); //替换 char *strCopy(char *,const char *); //拷贝 int strCompare(char *,char *); //比较 char *strConcat(char *,char *); //拼接 void strConvert(char *); //倒置 int strLength(char *); //获取长度 //调用函数 void strOperate() { char source[]="China"; char rep[]="ese"; //替换 puts("---------replace------------"); strReplace(source,rep,4); puts(source); //拷贝 puts("---------strcpy------------"); char distStr[10]; strCopy(distStr,"abcdefg"); puts(distStr); //比较 puts("---------strcmp------------"); printf("%d\n",strCompare("ABCD","ABC")); //获取长度 puts("---------strlength------------"); printf("%d\n",strLength("ABCDe")); //拼接 puts("---------strconcat------------"); char sc[30] = "Chinese"; strConcat(sc," FUCK Japanese"); puts(sc); //倒置 puts("---------strconvert------------"); char s[] = "I love my homeland"; strConvert(s); puts(s); } //替换 void strReplace(char *soucrStr,char *replaceStr,int pos) { while(pos>0&&*soucrStr!='\0')//pos>1为了防止指针后移,以至于不准确 { soucrStr++;//把指针移到指定位置 pos--; } while(*soucrStr!='\0'&&*replaceStr!='\0') { *soucrStr = *replaceStr;//替换 soucrStr++; replaceStr++; } } //拷贝(目标字符数组要比源数组大,不然会溢出,产生各种悲剧) char *strCopy(char *distStr,const char *sourceStr) { char *address = distStr; while((*distStr++=*sourceStr++)!='\0');//先赋值比较再自加 //*distStr++是对指针++,再取值,至右向左,单独测试过了 return address; } //比较 int strCompare(char *str1,char *str2) { while(*str1&&*str2&&(*str1==*str2)) { str1++; str2++; } return *str1-*str2; } //拼接 char *strConcat(char *distStr,char *sourceStr) { char *address = distStr; while(*distStr)//移动到目标字符串尾部,若使用while(*distStr++),则会出错 { distStr++; } while((*distStr++=*sourceStr++)!='\0'); return address; } //倒置 void strConvert(char *str) { int len = strLength(str); int mid = len/2; char tmp; for(int i=0;i<mid;i++) { tmp = str[i]; str[i] = str[len-i-1]; str[len-i-1] = tmp; } } //获取长度 int strLength(char *str) { int len = 0; while(*str++) len++; return len; }
相关文章推荐
- 一些自己编写的字符串操作函数
- C语言中操作字符串的一些函数源代码
- 重写string.h中的字符串操作函数--strchr
- C 语言中操作字符串的一些函数源代码
- Postgresql数据库的一些字符串操作函数
- C++中字符串操作的一些常用函数
- Postgresql数据库的一些字符串操作函数
- c 系统函数速查表---数学函数,内存管理函数,字符串操作-------
- 重写string.h中的字符串操作函数--memmove、memcpy
- C语言中操作字符串的一些函数源代码
- Postgresql数据库的一些字符串操作函数
- [C++ 学习] C++ Primer 第4版 习题 4.30 字符串操作 & 我对堆内存 和 常量区内存的一些理解
- 【转贴】C语言中操作字符串的一些函数源代码
- C语言中操作字符串的一些函数源代码
- PHP中一些可以替代正则表达式函数的字符串操作函数
- 字符串操作函数的一些细节问题
- 一些字符串及内存操作函数的实现
- 关于字符串操作的一些函数简单说明与应用
- <2012 12 17> C标准库中一些字符串操作函数的实现
- 重写string.h中的字符串操作函数--strncpy