① 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;
}
請採納