① c语言的几道题目 全分 回答有重谢
//字符串连接
#include <stdio.h>
void mycat(char a[],char b[])
{
char *p=a,*q=b;//指针指向
while(*p)
p++;
while(*q)//开始连接
*p++=*q++;
*p='\0';//结束标识
}
main()
{
char a[100],b[100];
printf("input a string:");
gets(a);
printf("input a string:");
gets(b);
mycat(a,b);
printf("string:");
puts(a);
}
#include <stdio.h>//数组中字符串复制
char cpy(char a[],char b[]);
main()
{
char a[100]="abcd",b[100]="efg";
cpy(a,b);
puts(a);
}
char cpy(char a[],char b[])
{
char *p,*q;
p=a;
q=b;
while(*q)
*p++=*q++;
*p='\0';
return a[100];
}
② C语言 注入到其他进程或隐藏进程
这个东西,不是C语言能实现的,
你必须好好学学WinSDK,调用Win32接口函数,去实现..C语言虽然强大,但没强大到异想就能天开的地步!!!
那得去找比尔盖茨,只有他有那1000多个,Win Api的内部实现代码,不过那是他的命根子,估计杀了他,他也不会拿出来的..
要真去理解它的内部实现,估计 成千上百个奇形怪状的结构,莫名奇妙的宏,面目可憎的指针的指针的指针的地址的指针就能吓死人了..算法就不提了.
③ C语言如何模拟键盘输入
C语言模拟键盘代码如下:
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)
{
MSG msg;
if(!MyRegisterClass(hInstance))
{
return FALSE;
}
if(!InitInstance(hInstance,iCmdShow))
{
return FALSE;
}
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}
//函数:ShowKey
//作用:实现在窗口中显示按键信息
void ShowKey (HWND hwnd, int iType,char *szMessage,WPARAM wParam,LPARAM lParam)
{
static char *szFormat[2] ={"%-14s %3d %c %6u %4d %5s %5s %6s %6s",
"%-14s %3d %c %6u %4d %5s %5s %6s %6s" };
char szBuffer[80];
HDC hdc;
ScrollWindowEx(hwnd, 0, -yChar, &rc,&rc,NULL,NULL,SW_INVALIDATE);
hdc = GetDC (hwnd);
SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));
TextOut (hdc,
xChar,
rc.bottom - yChar,
szBuffer,
wsprintf szBuffer,
szFormat[iType]。
④ c语言汇编代码注入
指定内存肯定是不行. 但是你可以通过函数调用或修改IP的值让CPU跳转到代码块, 当然函数调用肯定是更方便.
你只是一个程序, 不可能命令操作系统去分配一块指定的内存.
⑤ 用C语言做纯按键脚本,脚本保护要不要做dll注入,直接模块掩藏进程,是否可以或者有什么更好的办法
不隐藏试试 一般的游戏应该不会有这种检测 一般只检测按键精灵这种大众主流软件
⑥ 如何实现用C语言用游戏手柄与程序互动
这句话有语病,表意不明。
⑦ 对这个C语言程序很感兴趣,但是不知道它的每个步骤是什么意思,求大虾解释。
// 我只是简单的看了一下,难免有错,请见谅。希望能帮助您,如果有问题请回复。
// 祝你学习顺利
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <malloc.h>
# include <ctype.h>
# include <process.h>
# include <windows.h>
// 上面这些是头文件,include之后可以使用其中定义的函数和变量,比如Include <string.h>之后就可以使用string这个类了。
int bitmapToGray(char *OriginalBMP,char *ResultBMP); //声明了一个函数将bitmap转换为灰度图像,括号里面的是输入的变量。这个相当于告诉编译器,后面会有一个函数叫这个名字,但没有具体定义函数内容。
int main() // 这个main函数是整个程序的入口,进入入口之后,程序会调用bitmapToGray这个函数。
{
bitmapToGray("C:\\Users\\Sky\\Desktop\\LONGJIANG.bmp",
"C:\\Users\\Sky\\Desktop\\LONGJIANG2.bmp");
return 0;
}
int bitmapToGray(char *OriginalBMP,char *ResultBMP) // 这里是bitmapToGray函数的具体定义,相当于把这个函数具体做什么一步一步写出来。
{
unsigned char *BMP24Image,*BMP8Image;
BITMAPFILEHEADER fh;
BITMAPINFOHEADER ih;
RGBQUAD Color[256];
BYTE CTemp[3]; //颜色分量
int Row,Col,nCol;
int i,j,k;
FILE *f,*p;
//上面的都是声明变量,这些变量的申请速度很快,因为他们在栈上,这个空间一般有1M,读写速度都比较快,使用起来安全。
BMP24Image=(unsigned char*)calloc(2000*2000,sizeof(unsigned char));
BMP8Image=(unsigned char*)calloc(1000*1000,sizeof(unsigned char));
//上面是申请空间,这个空间是在堆上面,这个堆基本就是内存,和虚拟内存了,很大,但是会比较慢,而且管理起来比较复杂。
if((f=fopen(OriginalBMP,"rb"))==NULL)
{
printf("open %s error,please check\n");
return 0;
}
fread(&fh,sizeof(BITMAPFILEHEADER),1,f);
if(fh.bfType!='MB')
{
printf("This is not a BMP picture\n");
return 0;
}
fh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
+sizeof(RGBQUAD)*256;
fread(&ih,sizeof(BITMAPINFOHEADER),1,f);
Row=ih.biHeight;
Col=ih.biWidth;
Col=Col/4*4;
nCol=Col*4/4*4; //扫描宽度
ih.biBitCount=8; //改变像素位数大小,8位,256色
fread(BMP24Image,sizeof(unsigned char),Row*Col,f);
// 上面就是读取BMP图像
for(i=0;i<Row;i++)
{ for(j=0;j<Col;j++)
{
if(BMP24Image[i*Col+j]>128)
BMP8Image[i*Col+j]=255;
else BMP8Image[i*Col+j]=100;
// 上面是对BMP进行二值化处理
for(k=0;k<3;k++)
{
CTemp[k]=BMP24Image[i*nCol+j*3+k];
}
BMP8Image[i*Col+j]=CTemp[2]*0.299+CTemp[1]*0.587+CTemp[0]*0.114;//转化公式
}
}
// 上面大概是空间转换YUV到RGB
fclose(f);
if((p=fopen(ResultBMP,"wb"))==NULL)
{
printf("open savefile error\n");
return 0;
}
// 准备进行写入操作
for(i=0;i<256;i++) //调色板
{
Color[i].rgbBlue=i;
Color[i].rgbGreen=i;
Color[i].rgbRed=i;
Color[i].rgbReserved=0;
}
// 灰度图是从0~255,上面大概是进行灰度处理
fwrite(&fh,sizeof(BITMAPFILEHEADER),1,p);
fwrite(&ih,sizeof(BITMAPINFOHEADER),1,p);
fwrite(Color,sizeof(RGBQUAD),256,p);
fwrite(BMP8Image,sizeof(unsigned char),Row*Col,p);
fclose(p);
// 上面进行写入操作,并且关闭
return 0;
}
⑧ C语言新手 把下面这段程序sum=sum+i;这句注解下/**/ 其它的不用注解
这是一个循环中的语句它的意思是每循环一次都将sum的值加上i的值,然后将sum、i的和赋给sum
⑨ 自己开发一个手机蓝牙游戏手柄
蓝牙模块一个,ATmega8L-8PU单片机一个,28针单片机插座一个,0.1uf陶瓷电容一个,10uf电解电容两个,1K电阻一个,发光二极管一个,1117-3.3v稳压芯片一个,烙铁一支,导线若干。连接方法请看最后一个图。ATmega8的下载方法有很多,自己上网搜一搜就行了
⑩ 一道c语言编程题求助!急!
#include<stdio.h>
intmain(void)
{
inti,j,n;
scanf("%d",&n);
for(i=1;i<=2*n+3;i++){
for(j=1;j<=n+2;j++)
if(j>1&&j<n+2)
if(i==1||i==n+2||i==2*n+3){
printf("#");
}else{
printf("");
}else{
if(i==1||i==n+2||i==2*n+3)
printf("");
else
printf("#");
}
printf(" ");
}
return0;
}
请采纳