字符串处理函数
来源:互联网 发布:泰安焦点网络怎么样 编辑:程序博客网 时间:2024/06/06 20:37
面试中面试官会经常让你现场写的程序主要集中在字符串处理函数的实现上:
1、字符串的复制
2、字符串的连接
3、字符串的比较
详见:点击打开链接
4、字符串的查找(查找一个字符串在另一字符串中的位置)
5、字符串的转换(atoi函数、atof函数)
前三个函数的实现都比较容易,但必须注意的一点是:一定要注意字符串结束标识符是否需要人为的添加到目的字符串中。
字符串的查找,其实就是模式匹配,数据结构中讲到高效的KMP算法。
这里我重点说下字符串的转换函数:
atoi:数字字符串转换为相应的整数,如“2345”=>2345
int atoi(char s[]){ int result=0; while(s[i]) result = 10 * result + (s[i] - '0'); return result;}
反过来,itoa:整数转换为相应的数字字符串,如2345=>"2345"
void itoa(int n){ int m; if(n) {m=n%10; n/=10;itoa(n); } printf("%c",m+'0');//将相应的数字转化为相应的数字字符,如将3转化为’3’}atof:数字字符串转换为相应的浮点型数,如“123.45”=>123.450000,"123.45E+02"=>12345.000000等等
#include <stdio.h>#include <math.h>double atof(char s[]){ int i=0,k,m; double result=0; int result1=0; //处理整数部分 while(s[i]!='\0') { if(s[i]!='.') result = 10.0 * result + (s[i] - '0'); else break; i++; } //假如有小数部分,计算整数+小数部分 if(s[i]!='\0') { i++; m=0; while(s[i]!='\0') { if(s[i]!='E' && s[i]!='e') { m++; result+= (s[i] - '0')*pow(0.1,m); } else break; i++; } } //假如有'e'之后的部分 if(s[i]!='\0') { i++; while(s[i]!='\0') { if(s[i]=='+' || s[i]=='-') k=i;//记录'+'或'-'的位置 else result1 = 10 * result1 + (s[i] - '0'); i++; } if(s[k]=='-') result1=-result1; result*=pow(10,result1); } return result;}int main(){ char s[100]; while(1) { printf("please input a string:"); gets(s); printf("%lf\n",atof(s)); } return 0;}
- PHP字符串处理函数
- 字符串处理函数
- javascript字符串处理函数
- 字符串处理函数
- c++(字符串处理函数)
- javascript字符串处理函数
- sql字符串处理函数
- JavaScript 处理字符串函数
- 两个字符串处理函数
- Javascript字符串处理函数
- JSTL字符串处理函数
- c++字符串处理函数
- [javascript]字符串处理函数
- javascript字符串处理函数
- C++字符串处理函数
- php字符串处理函数
- 字符串处理函数
- PHP字符串处理函数
- IOS7 UITextView高度变换问题
- OpenRisc-20-or1200下linux的i2c(二)
- pb9 在win7下 formula one 6报readex错 解决方案
- 发布元数据终结点详解
- CDockablePane使用心得
- 字符串处理函数
- c程序中出现错误:程序中有游离的‘\240’
- 程序猿养成--谈谈必须的好习惯
- JavaScript 运算符
- decode_thread的关键调用
- SQL Server 存储过程
- 10-HEVC的高层语法结构
- SpringMVC提交数组时不能超过256个值
- 了解“云计算”