谭浩强c语言书中字符串函数原型的实现
2012-09-13 11:29
489 查看
学习编程的人都知道,字符串是程序员面试的重要考察环节,因为通过考察一个程序员对于字符串的操作,可以看出一个人的编程水平和编程习惯。
字符串编程设计到数组操纵,指针运作,越界判断等,可以考察的很全面。
这里将谭浩强c语言程序设计书里关于字符串的标准函数的原型用我写的c代码描述一下,经过调试能运行,基本上能实现其功能。
1.strcat函数,函数的作用是将str2字符串接到str1字符串后面,返回str1的地址,代码如下:
2. strcmp函数,函数作用是比较字符串str1和str2大小,如果str1=str2返回0,如果str1>str2返回正数1,如果str1<str2返回负数-1,代码如下:
3. strcpy函数,函数的作用是将字符串str2全部拷贝到字符串str1中,并返回str1的地址,代码如下:
4.strncpy函数,函数的作用是将字符串str2中前n个字符拷贝到字符串str1中,返回str1的地址,代码如下:
5.strlen函数,函数的作用是计算字符串str1的长度,并返回,代码如下:
6.strlwr函数,函数的作用是将字符串中大写字母改为小写字母,返回原字符串地址,代码如下:
7.strupr函数,函数的作用是将字符串中小写字母改为大写字母,返回原字符串地址,代码如下:
最后:
1.程序是基本实现功能,但健壮性不强,比如strncpy函数中n的大小和格式并未做限制。
2.函数的原型未做仔细研究,如格式有不对的地方,可以自行调整,比如我并不确定strupr函数是否有返回值。
3.仅给字符串初学者或正在准备程序员面试的朋友交流学习,欢迎大家多提意见。
字符串编程设计到数组操纵,指针运作,越界判断等,可以考察的很全面。
这里将谭浩强c语言程序设计书里关于字符串的标准函数的原型用我写的c代码描述一下,经过调试能运行,基本上能实现其功能。
1.strcat函数,函数的作用是将str2字符串接到str1字符串后面,返回str1的地址,代码如下:
char *strcat(char *str1, char *str2) { char *address = str1; //保留str1起始地址 int i = 0, j = 0; //i,j分别是str1,str2在赋值过程中的标志位 while(str1[i] != '\0') //i的值为s1的长度 i++; if(str2[j] == '\0') return address; else { while(str2[j] != '\0') str1[i++] = str2[j++]; str1[i] = '\0'; //别忘了加上结束标志符,这是字符串有别与其他数据类型的地方 } return address; }
2. strcmp函数,函数作用是比较字符串str1和str2大小,如果str1=str2返回0,如果str1>str2返回正数1,如果str1<str2返回负数-1,代码如下:
int strcmp(char *str1, char *str2) { int cmp = 0; while(cmp == 0) { if(*str1 == *str2) { if(*str1 == '\0' && *str2 == '\0') break; str1++; str2++; } else if(*str1 > *str2) cmp = 1; else if(*str1 < *str2) cmp = -1; } return cmp; }
3. strcpy函数,函数的作用是将字符串str2全部拷贝到字符串str1中,并返回str1的地址,代码如下:
char *strcpy(char *str1, char *str2) { char *address = str1; if(*str2 == '\0') return address; else { while(*str2 != '\0') *str1++ = *str2++; *str1 = '\0'; } return address; }
4.strncpy函数,函数的作用是将字符串str2中前n个字符拷贝到字符串str1中,返回str1的地址,代码如下:
char *strncpy(char *str1, char *str2, int n) { char *address = str1; int i = 0; if(str2[i] == '\0') return address; else { while(i < n) { *str1++ = str2[i++]; if(str2[i] == '\0') break; } *str1 = '\0'; } return address; }
5.strlen函数,函数的作用是计算字符串str1的长度,并返回,代码如下:
int strlen(char *str1) { int len = 0; if(str1[len] == '\0') return len; else { while(str1[len] != '\0') len++; } return len; }
6.strlwr函数,函数的作用是将字符串中大写字母改为小写字母,返回原字符串地址,代码如下:
char *strlwr(char *str1) { char *address = str1; while(*str1 != '\0') { if(*str1 >= 'A' && *str1 <= 'Z') *str1+=32; str1++; } return address; }
7.strupr函数,函数的作用是将字符串中小写字母改为大写字母,返回原字符串地址,代码如下:
char *strupr(char *str1) { char *address = str1; while(*str1 != '\0') { if(*str1 >= 'a' && *str1 <= 'z') *str1-=32; str1++; } return address; }
最后:
1.程序是基本实现功能,但健壮性不强,比如strncpy函数中n的大小和格式并未做限制。
2.函数的原型未做仔细研究,如格式有不对的地方,可以自行调整,比如我并不确定strupr函数是否有返回值。
3.仅给字符串初学者或正在准备程序员面试的朋友交流学习,欢迎大家多提意见。
相关文章推荐
- 自己实现的C语言string.h 头文件的字符串函数与几个内存操作函数
- 模拟实现C语言中的字符串函数
- c语言常用字符串函数实现
- C语言中返回字符串函数的四种实现方法
- (C语言)memcpy函数原型的实现
- C语言中的字符串函数的实现,strcpy,strlen,strcat,strcmp
- 【C语言】C语言字符串函数实现(一)
- 常见字符串函数的模拟实现(二)(c语言)
- C语言常见字符串函数实现
- C语言实现《设计模式之禅》——原型模式
- 字符串函数的原型实现(strcpy, strcat, strcmp, memset, memcpy, memmove)
- C语言中返回字符串函数的四种实现方法
- 【面试中的】C语言实现字符串函数
- C语言中返回字符串函数的四种实现方法
- C语言中返回字符串函数的四种实现方法 2015-05-17 15:00 23人阅读 评论(0) 收藏
- C语言内存处理函数原型实现
- C语言简单实现14个例题(谭浩强第四版)
- C语言中返回字符串函数的四种实现方法
- 常见字符串函数的模拟实现(一)(c语言)
- C语言中返回字符串函数的四种实现方法