博文
字符串中包含子串的个数--c(2007-12-06 20:47:00)
摘要:#include "stdio.h"
int count(char*, char*);
int main(){
char str[80], subStr[80];
gets(str);
gets(subStr);
printf("%d\n", count(str, subStr));
return 0;
}
int count(char* str, char* subStr){
int i, j, k, num = 0;
for(i=0; str[i]!='\0'; i++)
for(j=i, k=0; subStr[k]==str[j]; k++, j++)
if(subStr[k+1] == '\0'){
num++;
break;
}
return num;
}......
初识eclips(2007-11-25 19:22:00)
摘要:今天装了一下eclips,装了几个插件。把我都插晕啦。现在电脑装了很多软件,机器明显慢了很多 5555555555 可怜我的爱机啊。
安装的插件主要有:
1、汉化插件(要版本对应)
将多国语言包解压至${eclipse_home}\language
建立文件 ${eclipse_home}\links\language.start 来指明语言包的位置
language.start文件内容:
path=language
也可以是绝对路径,路径中目录名可以有空格。
打开eclipse有可能是英文和汉语结合的情况,关闭eclipse,删除 ${eclipse_home}\configuration\org.eclipse.update 目录,打开eclipse就可以OK啦。
2、tomcat插件
安装这个插件是为了将web服务器tomcat植入eclipse。
菜单 window->preference 设置tomcat的版本以及主目录
3、lomboz插件
lomboz是一个jsp开发工具,不但支持jsp语法高亮显示,还有code assist功能,可以与jbuild媲美。
未完---待续......
火车售票 -- C(2007-11-25 18:44:00)
摘要:1.编写程序实现火车站售票程序(以一节车厢为例)。
下图(图1)是火车车厢内座位的布局,座位号从1到80;
其中1,2, 5,6位于一个间隔内,3、4、7、8也是一个间隔内的座位…
1
5
9
13
………
………
65
69
73
77
2
6
10
14
66
70
74
78
过道
3
7
11
15
………
………
67
71
75
79
4
8
12
16
68
72
76
80
售票规则总则 假设每次最多售4张;
售1张票原则:随便售出一张没有售出的票;
售2张票原则:优先售2张相邻的票、如果没有2张相邻的票就随便售出两张票;
所谓2张相邻包括:1和2; 3和4; 5和6; 7和8等等
以下情况不算相邻: 1和5; 2和3等等
售3张或4票原则:优先售一个间隔内的票;
如果剩余票数不足,就提示不足, 不售票.
如果不能满足优先原则,......
最短路径 -- DijKstra算法(2007-11-25 18:14:00)
摘要:本程序以下面的图为例,求v0到其他各个顶点的最短距离。
运行结果:
本程序在运行时必须在其同目录中包含in.txt文件。
in.txt文件内容的说明:第一行为顶点个数,边数,以后各行是边及其权值。本例为:第一行 6 -- 六个顶点,8 -- 八条边,第二行 0 2 10,v0到v2有条权值为10的边,下面是以上面的图为例的in.txt的内容:
6 8
0 2 10
0 5 100
0 4 30
1 2 5
2 3 50
3 5 10
4 3 20
4 5 60
以下是主程序:
#include "stdio.h"
#include "stdlib.h"
#define INT_MAX 32767
#define INFINITY INT_MAX //最大值
#define MAX_VERTEX_NUM 20 //最大顶点个数
#define TRUE 1
#define FALSE 0
typedef struct ArcCell{
int adj;
}ArcCell, AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct{
int vex[MAX_VERTEX_NUM];
AdjMatrix arcs;
int vexnum, arcnum;
}MGraph;
void printPath(int*, int); //打印一条路径
void output(MGraph*, int, int*, int*); //最后输出
void CreateMGraph(MGraph*); //从文件(in.txt)中读取数据,创建图的邻接矩阵
void ShortestPath_DIJ(MGraph*, int, int*, int*); //最短路径算法 -- DijKstra算法
int main(){
int P[MAX_VERTEX_NUM]; //路径向量
int D[MA......
让英文Linux系统显示和输入中文 (转载) (2007-11-18 11:07:00)
摘要:
对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文.另外,由于大部分主要Linux发行版都是以英语为主体的,英文界面的系统和应用程序不管在界面的美观程度和稳定程度上都比中文的略好一些,各种奇怪的BUG也要少一些。因此,很多稍微有英语基础的Linux用户都宁愿使用英文界面的系统。但是,矛盾又突现出来:在英文系统下,如何才能正常显示和输入中文呢?有没有两全其美的方案呢?因此,笔者开始探索如何解决这个问题。我的完美状态是:系统和应用程序全部为英文(系统菜单、应用程序工具栏、默认输入法等),而我需要阅读和撰写中文文档的时候,能正确的显示中文并调出中文输入法。经过尝试,设置成功,现在以FC4 Linux为例,讲解一些相关知识和设置过程。
本文主要通过修改系统配置的过程来展现修改linux系统配置的一般思路和过程,如果你不太有耐心看完,请跳过文章的1—4节,直接看第五节快速设置部分。
一,相关变量介绍
我们知道大部分Linux系统是无所谓中文版和英文版的,以FC4 Linux为例,系统发行的时候全世界都一样,系统是中文的还是英文的完全取决于你选择的语言包。不同国家的人在安装使用的时候选择属于自己国家的语言包,应用程序中的语言也不是写死的,它根据系统的设置来调用相关的语言,所以,一个应用程序写出来不经过修改,全世界不同国家的用户都可以以母语界面使用它,这就事所谓的internationalization(国际化),简称 i18n。这也是未来软件的发展趋势。
那么,如果我在系统中安装了不同的语言包和不同的字体,系统是如何判断我所要的语言界面并调用相关的字体的呢?系统中那些文件和变量在控制这些呢?
在redHat和FC系列Linux系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下:
代码:LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
其中LANG变量是......
初识linux(2007-11-18 11:03:00)
摘要: 认识linux已经有一周的时间了。期间我在虚拟机上装了三次,对安装失败做个总结。
1、问题描述:安装过程中装完软件包之后电脑重启,进入最后配置界面,但是屏幕黑乎乎的一片,隐约可以看见有几个大字,但是无法辨别什么字。
2、系统环境:虚拟机上安装 redhat 9、gnome界面
3、快速解决方案:
⑴用ctrl + alt + '+' 和 ctrl + alt + '-' 两个快捷键进行分辨率的调整,直到看清屏幕上的字体。
⑵按照提示完成新建用户等的最后配置
⑶此时会出现登录界面,输入刚刚的用户名和密码之后进入linux的桌面
⑷用ctrl + alt + backspace退出图形界面,进入命令终端。输入redhat-congfig-xfree86进行显示配置的修改,但此时提示要root权限,输入root的密码,回车后会进入显示配置的图形界面
⑸修改“色深”为“上千种颜色”
到此问题解决。下面是详细的过程。
装过的人都知道,安装过程的最后部分要重启,重启之后就是最后的配置阶段,但是我每次到这个阶段都出现同样的问题,屏幕黑乎乎的一片,上面隐约有几个大字但是看不清,几次下来之后,我想到了是分辨率的问题,但是怎么调整分辨率呢,你自然会想到用快捷键,于是百度了一下,果然有GNOME下调整分辨率的快捷键,ctrl + alt + '+' ctrl + alt + '-' ,在黑屏幕上反复试了几次,还真有了效果,虽然界面一片马赛克,但是可以看清楚字了。
完成了最后的配置,就进入了登录界面。这时还是看不清用户名的输入框的,但是大概可以猜到他就在提示信息的下面,用鼠标将光标定位到里面,然后试着输入了一下,就可以看到输入的字符了,接着按下回车输入密码,这样就进入了linux。
&nbs......
让EditPlus编译c/c++程序(2007-05-12 10:51:00)
摘要:本文以EditPlus挂接Vc6.0为例,说明EditPlus的配置方法:
注:其中相关目录(E:\Program Files\.....)因情况而异。
工具/ 配置工具/
弹出参数选择窗口,“组名称”改为Debug c/c++,“添加工具”添加如下两个“应用程序”:
1、
菜单文本:编译
命令:"E:\Program Files\Microsoft Visual Studio\VC98\Bin\CL.EXE"
参数:"$(FilePath)"
起始目录:$(FileDir)
捕获输出:打勾
2、
菜单文本:运行
命令:$(FileNameNoExt)
参数:
起始目录:$(FileDir)
3、(可选)免得每次修改后都要先编译再执行。利用批处理来执行1和2中的命令。
菜单文本:编译运行
命令:"E:\Program Files\Microsoft Visual Studio\VC98\Bin\run.bat"
参数:"$(FileNameNoExt)"
起始目录:$(FileDir)
-----------------------------------------
run.bat文件内容如下:
@echo off
if exist %1.c cl.exe %1.c
if exist %1.cpp cl.exe %1.cpp
cls
%1.exe
pause
注意:在运行 run.bat 时有可能提示错误:“没有找到 mspdb71.dll ,因此这个……”,这是因为 cl.exe 运行时需要设置相关环境变量(INCLUDE 和 LIB)。设置方法如下:
以 .net 2003 位例:
环境变量的设置可参考下面文件的内容:
E:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\sdkvars.bat
或直接将 sdkvars.bat 的内容拷贝到 run.bat 的首部。......
提取数字字段和大数加法-批处理应用(2007-05-10 18:27:00)
摘要: setlocal enabledelayedexpansion
set "num1=qwer/asdf2/asd34f/1234567890123456/asdf/aaaa"
set "num2=aaaaa2/23456789012345678/asdfssasd/asdaa"
set "num1=%num1:/= %" & call :get_number !num1! & set "num1=!t!"
set "num2=%num2:/= %" & call :get_number !num2! & set "num2=!t!"
set "result="
:c_loop
set /a x=%num1:~-8%
set /a y=%num2:~-8%
set /a z=%x%+%y%
if defined flag set /a z=%z%+%flag%
set "flag=%z:~0,-8%" >>nul 2>>nul && set "z=%z:~-8%"
set "num1=%num1:~0,-8%"
set "num2=%num2:~0,-8%"
set "result=%z%%result%"
if not defined num1 if not defined num2 set "result=%flag%%result%" & goto :show
if not defined num1 set /a num1=0
if not defined num2 set /a num2=0
goto c_loop
:show
echo %result% & pause & goto :eof
:get_number
:loop
echo %1>> tmp.txt& shift
if not "%1"=="" goto :loop
for /f %%a in ('findstr /r "^[0-9][0-9]*$" tmp.txt') do set "t=%%a"
del tmp.txt......
批量修改文件名-批处理应用(2007-05-10 18:20:00)
摘要:任务说明:用数码相机拍的照片文件名太长,看着不爽。类似文件名:123456_fadfa.jpg、457845_fdaf.jpg.......
实现:
1、分析文件名字符串
for /f "usebackq token=1* delims=_" %%i in ('dir /b /a-d x:\*.jpg')do rename "%%i_%%j" %%i.jpg
对于任务说明中的文件名,此处token=1*也可改为token=1-6
2、采用连续数字序列
setlocal enabledelayedexpansion
set /a n=1
for /r %%i in (x:\*.jpg) do rename %%i !n!.jpg & set /a n+=1
3、利用环境变量
setlocal enabledelayedexpansion
for /f %%i in ('dir /a-d /b x:\*.jpg') do(
set filename=%%i
set filename=!filename:~0,6!
rename %%i "!filename!.jpg")
或者:
setlocal enablelayedexpansion
for /f %%i in ('dir /a-d /b x:\*.jpg') do set filename=%%i call :rn !filename!
pause & exit
:rn
set filename="%filename:~0,6%"
rename %1 %filename%.jpg......