本段程序实现串的存储结构是采用堆的动态分配存储表示,并实现了几乎所有常用的串的配套函数
其中逻辑性比较强的就是串的模式匹配算法,在下面的程序中,分别用BF算法和KMP算法对其进行了
实现。
#include
using namespace std;
struct HString
{
HString()
{
ch = 0;
length = 0;
}
char * ch;//...
分类:
编程语言 时间:
2014-05-14 01:12:35
阅读次数:
378
查询当前运行进程中是否有指定进程有多种方式,下面介绍一种通过进程名获取进程号,以此来确认该进程是否在运行。
如下实例,查询当前运行进程中是否有test进程在运行。
char buf[200]={0};
system("ps -A | awk '/test/{print $1}'>result");
FILE *fd;
fd=popen...
分类:
系统相关 时间:
2014-05-13 08:02:55
阅读次数:
409
1、char向int转换
方法一:(适用于单个字符)
char ch = '6';
int num = ch - '0'; //此时num=6
方法二:(适用于字符串)
函数atoi: int atoi ( const char * str );
参数是一个char类型的数组,不能是单个char变量
char str[10] = "32352";
int num = atoi(...
分类:
其他好文 时间:
2014-05-13 06:55:14
阅读次数:
362
__attribute__((packed))的作用
在结构体变量的声明中,经常可以看到__attribute__((packed))修饰符。这是做什么用的呢?请看一下程序:
#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned int
int main()
{
struct {
...
分类:
其他好文 时间:
2014-05-13 06:19:18
阅读次数:
416
大数相加可以借助多种方法来实现,这里提供了一种链表节点的数据域为int型(用char型也可以,这样更省空间)的思路。这篇文章采用常用的转变为字符串进行处理的方法,下面说下我用字符串实现大数相加的思路:
假设输入了如下两个字符串(其中上面的红色部分表示数组的下标,下面的绿色和黄色部分表示各字符):...
分类:
其他好文 时间:
2014-05-13 05:11:37
阅读次数:
327
其题目如下:#pragma pack(2)class A{public: int
i; union U { char buff[13]; int i; }u; void foo() { } typedef char*
(*f)(void*); enum{red, green, blue} ...
分类:
其他好文 时间:
2014-05-12 21:18:19
阅读次数:
321
实例2:读取字符文件,每次读入一个缓存里面。#include<stdio.h>#include<stdlib.h>#defineMAXLEN1024intmain(){FILE*fin;FILE*fout=fopen("c:\\dest.txt","wt");charbuf[MAXLEN];if((fin=fopen("c:\\test.txt","rt"))!=NULL){char*c=fgets(buf,MAXLEN,fin);while(..
分类:
编程语言 时间:
2014-05-12 02:57:48
阅读次数:
251
char* psize=malloc(sizeof(char)*100)
返回的可用空间不止100个字节,这是因为
分配的内存块前面有4 或8个字节用来存储分配的内在空间的信息。
所以,如果假设前30个字节有效,释放后70个字节时, free(psize +30)这样的写法是错误的,因为首地址p后移30字节后,还是去读紧邻羞的前面的4或8个字节来确定后面的内存信息。
而 cha...
分类:
其他好文 时间:
2014-05-11 21:49:57
阅读次数:
306
思路:先读入的一列是原始串,后读入的一列是目标串。最少操作次数的方式是,从下到上,只对原始串进行删除而不放到最上面能得到的目标串的以最下元素开头的最长子串,然后将目标串剩余的那些按序放在最上方,即按由下到上的顺序输出即可。
Code:
//#define LOCAL
#include
#include
#include
char name[210][90];
char target[210]...
分类:
其他好文 时间:
2014-05-11 21:42:42
阅读次数:
310
思路:简单的匹配操作,利用栈。
Code:
#include
#include
char stack[135];
int main()
{
int n;
scanf("%d",&n);
getchar();
while(n-->0)
{
memset(stack,0,sizeof(stack));
char c;
int top=0;
int flag=1;...
分类:
其他好文 时间:
2014-05-11 20:19:34
阅读次数:
376