易截截图软件、单文件、免安装、纯绿色、仅160KB

查找字符串中字符不重复的最大子串(C/C++)

 //输入参数:*str 搜索字符串
// subStrLen 用于返回找到的最大子字符串长度
//返回:找到的最大子字符串指针
char * findMaxSubStr(char *str, int &subStrLen){
char *subStr;
char *p = str;
int index[256] ;
for (int ix = 0; ix < sizeof(index)/sizeof(index[0]); ix++)
{
index[ix] = -1;
}
int subStrPos = 0; // 子字符串在字符串str中的偏移
int charPos = 0; // 当前字符在字符串str中的偏移
int currLen = 0; //当前子字符串长度
int maxLen = 0; //已经找到的最大子字符串长度

char ch;
while (ch = *p)
{
if (index[ch] < subStrPos){ //字符首次出现 或者 字符在子字符串开始的位置后首次出现
index[ch] = charPos;
currLen++;
}else {
currLen = charPos - index[ch];
subStrPos = ++index[ch];
index[ch] = charPos;
}
if (currLen > maxLen)
{
subStr = str + subStrPos;
maxLen = currLen;
}
p++;
charPos++;
}
subStrLen = maxLen;
return subStr;
}


相关文档:

linux+vim+gcc+gdb开发C/C++程序环境搭建

我用的是ubuntu操作系统。打开终端
1.sudo apt-get install vim(vim-full 这个软件自9.10版本被废弃了,不论怎么添加软件源都找不到的,所以直接安装vim就可以了,,也可以安装gvim,,在新立得软件里面搜索vim就可以找到了)
2.
sudo apt-get install build-essential // build-essential是c语言的开发包,包含了gcc ma ......

C/C++

9.2  共用体
C语言除了提供结构体这种可包含多种类型数据的构造类型外,还提供了一种从形式上看和结构体堪称“孪生兄弟”的构造类型——共用体(union)。
本节从共用体的概念入手,从共用体的概念、与结构体的异同、使用等方面进行详细的介绍。
9.2.1  什么是共用体
现实生活中,某些事 ......

C\C++中数组元素下标越界可能引起的问题

数组是类型相同的对象的序列,其中的对象称为数组元素。也可以将数组想像成一连串的用下标值编号的相邻存储区。
       可能在某些编程语言中,一个下标变量是不允许超出数组定义中所设的界限的。但是在C和C++中,数组是没有这种安全措施的。下面先来看看数组下标越界的几种异常结果。
&nb ......

C输出格式总结

C输出格式总结
2007-07-08 12:09
1 一般格式
   printf(格式控制,输出表列)
   例如:printf("i=%d,ch=%c\n",i,ch);
   说明:
   (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:
    &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号