十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
char wo16S[]={
10年积累的成都网站建设、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有长泰免费网站建设让你可以放心的选择与我们合作。
/* 以下是 '我' 的 16点阵宋体 字模,32 byte */
0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,
0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,
0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,
0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,
};
for (int i = 0; i 16; i++)
{
for (int j = 0; j 2; j++)
{
char ch = wo16S[i * 2 + j];
for (int k = 0; k 8; k++)
{
int x = j * 8 + k; //X坐标
int y = i; //Y坐标
if (ch (1 (7 - k)))
{
DrawPixel(x, y); //把这里DrawPixel换成C语言中的画点操作函数
}
}
}
}
有几个函数 你可以根据需求使用
strstr 可以在字符串中查找另一个字符串 用来提取也可以
strchr 可以找字符
sscanf 类似于scanf 可以格式化提取。
FILE *PHZK16;
/*
*HZK16字库初始化_打开字库
*/
void _InitHzk16()
{
PHZK16=fopen("Hzk16","rb");
if(!PHZK16){
printf("error in Hzk16,not exist\n");
system("pause");
exit(1);
}
}
/*
*取得字码
*/
void _GetHzk16Code(unsigned char code[],unsigned char bytes[])
{
unsigned char qh,wh;
unsigned long offset;
qh=code[0]-0xa0; /*得到区号*/
wh=code[1]-0xa0; /*得到位号*/
offset=(94*(qh-1)+(wh-1))*32L; /*得到偏移位置*/
fseek(PHZK16,offset,SEEK_SET); /*移文件指针到要读取的汉字字模处*/
fread(bytes,32,1,PHZK16); /*读取32 个汉字的汉字字模*/
}
/******************************************************************************************************************/
/*下面这个代码 是C画图模式下可用*/
/*
*改变x、y(左上点)的位置,就可以实现文字的横向输出
*单个文字输出
*/
void _InputHzk16(int x,int y,unsigned char code[],int color)
{
int i,j,x0=0,y0=0;
unsigned char s,mat[32];
_GetHzk16Code(code,mat);
for(i=0;i16;i++){
s=mat[2*i];
x0=x+7;
y0=y+i;
while(s){
if(s%2){
putpixel(x0,y0,color);
}
s=s/2;
x0--;
}
s=mat[2*i+1];
x0=x+15;
while(s){
if(s%2){
putpixel(x0,y0,color);
}
s=s/2;
x0--;
}
}
}
根据单个分隔字符用split截取
string st="GT123_1";
string[] sArray=st.split("_");
即可得到sArray[0]="GT123",sArray[1]="1";
2.利用多个字符来分隔字符串
tring str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123";
3根据字符串或字符串组来截取字符串
string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123";
4提取字符串中的第i个字符开始的长度为j的字符串;
string str = "GTAZB_JiangjBen_123";
int start=3,length=8;
Console.WriteLine(str.Substring(start-1, length));
使用文件操作函数fscanf即可提取文本当中特定的信息。例如要提取一个整数,可以用fscanf(fp,"%d",n);要提取一个字符串可以用fscanf(fp,"%s",s),其中fp为文件指针。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。
2、例程:
#includestdio.h
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打开输入文件
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
return 0;
}
fscanf(fp1,"%d",a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
n=(matsize-1)/8+1;//n是点阵的列数
for(j=0;jmatsize;j++)//j代表点阵中第j行的字符意思
for(i=0;in;i++)//i代表点阵中第i列字符的意思
for(k=0;k8;k++)//k代表在当前字模中,第k位的值
if(mat[j*n+i](0x80k)) /*测试为1的位则显示*/
putpixel(x+i*8+k,y+j,color);
}
你把字模的每个矩阵元素用二进制展开就知道k的意思了:
char shan16[]={
/* 以下是 '山' 的 16点阵宋体 字模,32 byte */
0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x08,0x21,0x08,
0x21,0x08,0x21,0x08,0x21,0xF8,0x2E,0x08,
0x30,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
};
相当于:
0000 0000 0000 0000 0000 0001 0000 0000
0000 0001 0000 0000 0000 0001 0000 0000
0000 0001 0000 0000 0000 0001 0000 0000
0000 0001 0000 1000 0010 0001 0000 1000
0010 0001 0000 1000 0010 0001 0000 1000
0010 0001 1111 1000 0010 1110 0000 1000
0011 0000 0000 1000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
最后得到:
_______________8________________
___________8___8________________
___________8___8________________
______8____8___8________8___8___
__8___8____8___8________8___8___
__8___8____8888_8888____8___8___
__88____________________8_______
________________________________