字符串操作
文章平均质量分 74
feike2008
这个作者很懒,什么都没留下…
展开
-
字符串循环左移
<br />要求时间复杂度空间复杂度都尽可能的低。<br />时间复杂度 O(n), 空间复杂度O(1),常量时间。<br />// 编程珠玑 第二章 字符串string循环移位i位<br />// eg "abcdefgh" 循环移位 3位 =》 "defghabc"<br />// 下面代码的简单思想是: <br />// 1:计算第一位将有谁来填(第四位 (currpos+i)%len ) d<br />// 2:计算第四位将有谁来填(第七位) <br />// 3:计算第七位。。。 直到所有的位置都转载 2010-06-07 19:42:00 · 1747 阅读 · 0 评论 -
字符串循环右移
字符串循环右移算法碰到一些问题,需要对字符串进行循环右移几位的操作,如果一位一位的整体移动,时间就耗费太多了;而如果使用辅助数组来临时存储一下,那么空间耗费就大了。想了有点时间,找到一个O(n)时间,仅需两个临时字符变量的方法。适合较长字符串,较多移动间距的循环移位操作: /* 字符串循环右移函数:tmp1存储前一个, tmp2 存储下一个。start记录起始位置设置它的原因是:如果某次循环之后正好回到了start,那么令 start++, cur再指向它,从这个新位置开始循环移动。*/<br />void转载 2010-06-07 23:06:00 · 969 阅读 · 0 评论 -
strcpy引发的疑问(一)
<br />A: <br />char *p1; //成功 <br />char p2[20]; <br />p1 = "String A"; <br />strcpy(p2,p1); <br /><br />b: <br />char *p1; //出错 <br />char *p2; <br />p1 = "String A"; <br />strcpy(p2,p1); <br /><br />是因为没给p2分配内存空间吗?不能动态自动分配吗? <br />如果是的话,怎么写面子和样也不能成功呢? <b转载 2010-06-09 20:04:00 · 578 阅读 · 0 评论 -
strcpy引发的疑问(二)
<br />1.库函数strcpy的工作方式<br />char * strcpy( char *strDest, const char *strSrc ) <br />{<br /> assert( (strDest != NULL) && (strSrc != NULL) );<br /> char *address = strDest; <br /> while( (*strDest++ = * strSrc++) != ‘/0’ ); <br /> return address;<br />}<b转载 2010-06-09 20:05:00 · 1027 阅读 · 0 评论 -
基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
strcpy:<br />/**********************<br />* C语言标准库函数strcpy的一种典型的工业级的最简实现<br />* 返回值:<br />* 返回目标串的地址。<br />* 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。<br />* 参数:<br />* strDeatination<br />* 目标串<br />* strSource<br />* 源串<br />*******************原创 2010-06-09 20:17:00 · 685 阅读 · 0 评论 -
Strcat,strcpy,strcmp,Strlen函数原型
这几个函数在面试的时候经常被考到,但没看过要准确又完美的写出来也不是易事,传说IBM曾经也考过写strcpy原型,说明这几个函数真的很有代表性,因此记于此处以便温习。以下皆经本人调试过。1、Strcat函数原型如下:char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数{ char * address = strDest; //该语句若放在assert之后,编译出错 asse转载 2010-06-09 22:43:00 · 907 阅读 · 0 评论 -
C++ int,char,string,CString类型转换(整理总结)
<br />C++ int,char,string,CString类型转换(整理总结)<br /><br />#include <string> //使用C++标准库的string类时<br />using namespace std; //同上<br />#include <sstream> <br />#include <iostream><br />#include <stdlib.h> //要将string类和int类型直接转换最好有这些包含,<br />//因为自己写一个转换函数比较方便,函数定义转载 2010-06-10 22:45:00 · 647 阅读 · 0 评论