文章目录:
- 1、c语言如何使用密码字典入侵局域网内指定计算机
- 2、用c语言编写电子英汉词典。
- 3、c语言做小词典
- 4、急急急!!!!用c语言实现字典 要求:用无序双向循环链表实现字典的基本操作如下
- 5、c语言编程 输出密码字典
- 6、c语言做出的程序都能干什么?一般黑客编写的入侵和攻击程序用的是什么语言?
c语言如何使用密码字典入侵局域网内指定计算机
入侵电脑好像更C没有直接的联系吧
既然你已经知道了指定计算机 想必也知道他局域网的IP了吧
IP扫描应该可以跳过了 根据他的操作系统 扫描漏洞 默认的$共享是否开启
根据他电脑开启的服务及端口 应该能找到突破点
如果你不明白入侵的原理 讲这么多都没用 C语言学再好都没用
用c语言编写电子英汉词典。
我用VC写了一个
比较简单的
// 词典.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include windows.h
#include stdio.h
#include malloc.h
#include winbase.h
#include process.h
void Search()
{
char temp[100];
char buffer[2];
char result[100];
printf("请输入要查询的单词:\n");
scanf("%s",temp);
buffer[0]=temp[0];
buffer[1]='\0';
int ret=GetPrivateProfileString(buffer,temp,0,result,100,"./date.ini");
if(ret0)
printf("%s\n\n\n\n\n",result);
else
printf("对不起,没有您要查找的单词.\n\n\n\n\n");
}
void InsertItem()
{
char temp[100];
char buffer[2];
char result[100];
printf("请输入要插入的单词:\n");
scanf("%s",temp);
printf("请输入单词的解释:\n");
getchar();
scanf("%s",result);
buffer[0]=temp[0];
buffer[1]='\0';
int ret=WritePrivateProfileString(buffer,temp,result,"./date.ini");
if(ret=0)
printf("插入失败。\n\n\n\n\n");
else
printf("插入成功。\n\n\n\n\n");
}
int main(int argc, char* argv[])
{
int index;
main:
printf("**************MENU***************\n\n");
printf(" 1 英译汉\n");
// printf("2 汉译英\n");
printf(" 2 插入新的词条\n");
// printf(" 3 删除已有词条\n");
printf(" 3 清空屏幕\n");
printf(" 4 退出\n\n");
printf("**********************************\n");
do{
printf("请选择操作(1~4):\n");
scanf("%d",index); /*输入选择项*/
}while(index0||index5); /*选择项不在0~4之间重输*/
switch(index)
{
case 1:
Search();
goto main;
break;
case 2:
InsertItem();
goto main;
break;
case 3:
system("cls");
goto main;
break;
case 4:
return 0;
break;
default:
break;
}
return 0;
}
输出:
**************MENU***************
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
**********************************
请选择操作(1~4):
1
请输入要查询的单词:
bad
adj. 劣质的,有害的,坏的,不利的,不健康的,严重的
**************MENU***************
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
**********************************
请选择操作(1~4):
2
请输入要插入的单词:
cat
请输入单词的解释:
猫
插入成功。
**************MENU***************
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
**********************************
请选择操作(1~4):
1
请输入要查询的单词:
cat
猫
**************MENU***************
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
**********************************
请选择操作(1~4):
4
Press any key to continue
c语言做小词典
/*基本的库函数*/
#include conio.h
#include stdio.h
#include stdlib.h
#include string.h
#define szWORD 32
#define szSTRN 224
#define szITEM sizeof(struct TItem)
char fileDict[szSTRN];
typedef struct TItem {
char word[szWORD];
char mean[szSTRN];
} Item;
fpos_t lookup(char *word, char *mean)
{
FILE * f = 0; Item i;
int r = 0; fpos_t p = 0;
if(!word) return 0;
f = fopen(fileDict, "rb");
if (!f) return 0;
while(!feof(f)) {
fgetpos(f, p);
r = fread(i, szITEM, 1, f);
if(r 1) break;
if(i.word[0] == 0) continue;
if(strcmp(i.word , word)) continue;
if(mean) strcpy(mean, i.mean );
fclose(f);
return p+1;
}
fclose(f);
return 0;
}
void append(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p) {
printf("字典内已经有该单词记录!\n");
return;
}
printf("请输入释义,按回车结束:");
fflush(stdin);
gets(i.mean );
f = fopen(fileDict, "ab");
fwrite(i, szITEM, 1, f);
fclose(f);
printf("词条已新增\n");
}
void erase(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p==0) {
printf("字典内没有该单词记录!\n");
return;
}
p--;
memset(i, 0, szITEM);
f = fopen(fileDict, "rb+");
fsetpos(f, p);
fwrite(i, szITEM, 1, f);
fclose(f);
printf("词条已删除\n");
}
void edit(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p==0) {
printf("字典内没有该单词记录!\n");
return;
}
p--;
printf("请输入释义,按回车结束(输入abort放弃修改):");
fflush(stdin);
gets(i.mean );
if(strstr(i.mean ,"abort")) {
printf("已放弃修改!\n");
return ;
}
f = fopen(fileDict, "rb+");
fsetpos(f, p);
fwrite(i, szITEM, 1, f);
fclose(f);
printf("词条已保存\n");
}
void query(void)
{
Item i; fpos_t p = 0;
memset(i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, i.mean );
if(p==0) {
printf("字典内没有该单词记录!\n");
return;
}
printf("【词条】%s\n【释义】%s", i.word , i.mean );
}
void set(void)
{
int cmd = 0;
printf("当前字典为%s,需要改变吗(选择y或Y改变)?", fileDict);
cmd = getch();
if(cmd == 'y' || cmd == 'Y') {
printf("请输入字典文件名称(包含路径):");
scanf("%s", fileDict);
printf("设置成功!\n");
}
}
int main(int argc, char * argv[])
{
int cmd = 0;
if(argc 1)
strcpy(fileDict, argv[1]);
else
strcpy(fileDict, "c:\\dict.txt");
/*end if*/
for(;;) {
printf("\n\
************************\n\
** 欢迎使用迷你字典!**\n\
************************\n\
** 0 - 设置字典 **\n\
** 1 - 查询词条 **\n\
** 2 - 新增词条 **\n\
** 3 - 编辑词条 **\n\
** 4 - 删除词条 **\n\
** 5 - 退出字典 **\n\
************************\n");
cmd = getch() - '0';
switch(cmd) {
case 0: set(); break;
case 1: query(); break;
case 2: append(); break;
case 3: edit(); break;
case 4: erase(); break;
default: return 0;
}
}
return 0;
}
急急急!!!!用c语言实现字典 要求:用无序双向循环链表实现字典的基本操作如下
#include stdafx.h //这行是VC编译时要的头文件,你若TC就不要本行了
#include stdio.h
typedef struct dictnode{char *key; char *value; dictnode *pre; dictnode *next;} DictNode;
DictNode *pHead = NULL;
//(1)make:构造空的字典
int make()
{
if(pHead)return -1;
pHead = (DictNode*)malloc(sizeof(DictNode));
memset(pHead,0,sizeof(DictNode));
pHead-pre = pHead;
pHead-next = pHead;
return 0;
}
//(2)size:返回字的字典中记录数
int size()
{
int i;
DictNode*p;
for(i=0,p=pHead; p-next!=pHead; p=p-next,i++);
return i;
}
//(3)IsEmpy:如果字典为空则返回真,否则返回假
int IsEmpy()
{
return (pHead-pre==pHead);
}
//(4)Clear:将字典重置为空
void Clear()
{
DictNode* p,*ptmp;
for(p=pHead-next; p!=pHead ; )
{
ptmp = p;
p = p-next;
free(ptmp-key);
free(ptmp-value);
free(ptmp);
}
pHead-next = pHead-pre = pHead;//最后一个空节点也是第一个节点
}
//(5)Insert:插入记录到字典
int Insert(char *key,char*value)
{
DictNode* p, *ptmp;
if(!key||!value||!*key||!*value) return -100;//调用错误
ptmp = (DictNode*)malloc(sizeof(DictNode));
if(!ptmp) return -2; //内存不足这种极端的情况很难出现,但有可能
memset(ptmp,0,sizeof(DictNode));
ptmp-key =(char*) malloc(strlen(key)+1);
if(!ptmp-key){free(ptmp);return -2;} //内存不足这种极端的情况很难出现,但有可能
strcpy(ptmp-key,key);
ptmp-value = (char*)malloc(strlen(value)+1);
if(!ptmp-value){free(ptmp-key);free(ptmp); return -2;} //内存不足这种极端的情况很难出现,但有可能
strcpy(ptmp-value,value);
for(p=pHead-next; p-next!=pHead; p=p-next) if(p-key!strcmp(p-key,key)) return 1;//记录存在,插入失败
ptmp-next = pHead; pHead-pre = ptmp;
ptmp-pre = p; p-next = ptmp;
return 0;//操作成功返回0
}
//(6)remove:与给定关键字的记录相同则删除,该记录被返回,否则字典保持不变
DictNode* remove(char *key)
{
DictNode* p;
for(p=pHead-next; p!=pHeadstrcmp(p-key,key); p=p-next);
if(p==pHead) return NULL;
p-pre-next = p-next;
p-next-pre = p-pre;
p-pre = p-next = NULL;
return p;//结点p的空间(key value p三个)没有释放,外面要接收返回值并主动释放结点空间或做别的处理如插入另一表中等
}
//(7)IsPrensent:如果存在与给定关键字匹配的记录则返回真,否则返回假
int IsPrensent(char *key)
{
DictNode* p;
for(p=pHead-next; p!=pHeadstrcmp(p-key,key); p=p-next);
return (p!=pHead);
}
//(8)Find:如果存在与给定关键字相同的记录,则返回记录;如果没有找到,则返回空
DictNode* Find(char *key)
{
DictNode* p;
for(p=pHead-next; p!=pHeadstrcmp(p-key,key); p=p-next);
if(p==pHead) return NULL;
return p; //不要对Find返回的记录key值做变更,value值可以修改,value加长时要重新分配空间。因为记录还在字典链表中
}
void main()
{
const char *prtstr = "****************************";
DictNode* ptmp;
char keybuf[80];
char valuebuf[1024];
int c;
make();
while(1)
{
system("cls");//清屏
printf("%s 选择菜单 %s",prtstr,prtstr);
printf("\n\tF---词条查找\n\tI---插入新词条\n\tR---删除词条\n\tC---清空字典\n\tS---显示字典词条数\n\tQ---退出\n");
printf("请选择操作菜单:");
fflush(stdin);
c = getchar();
if(c='a'c='z') c -= ('a'-'A');//换大写
if(c!='F'c!='I'c!='R'c!='C'c!='S'c!='Q') continue;
fflush(stdin);
switch(c)
{
case 'F':
printf("词条查找:\n请输入Key值:");scanf("%s",keybuf);
fflush(stdin);
ptmp = Find(keybuf);
if(ptmp){printf("Key:%s Value:%s",ptmp-key,ptmp-value);}
else{printf("没找到词条:%s,你可以先选择插入这个新词条",keybuf);}
break;
case 'I':
printf("插入新词条:\n请输入Key值:");scanf("%s",keybuf);
fflush(stdin);
if(IsPrensent(keybuf)){printf("词条%s已存在\n",keybuf);}
else
{
printf("请输入它的解释:");gets(valuebuf);
if(!Insert(keybuf,valuebuf))printf("插入成功\n");
else printf("插入失败\n");
}
break;
case 'R':
printf("删除词条:\n请输入Key值:");scanf("%s",keybuf);
fflush(stdin);
ptmp = remove(keybuf);
if(ptmp)
{
free(ptmp-value);free(ptmp-key);free(ptmp);
printf("记录key:[%s]已删除\n",keybuf);
}
else
printf("未找到待删除的记录key:[%s]\n",keybuf);
break;
case 'C':
printf("清空字典:\n真的要清吗?\n请输入Yes以确认删除操作(首字母大写):");scanf("%s",keybuf);
fflush(stdin);
if(strcmp(keybuf,"Yes")){printf("放弃了清空操作\n");}
else {Clear();printf("Ok,你坚持操作,现在字典已清空了\n");}
break;
case 'S':
printf("显示字典词条数:\n当前词条总数:%d\n", size());
break;
case 'Q':
Clear(); free(pHead);
printf("Byebye");
exit(0);
}
printf("\n按回车键继续......");
fflush(stdin);
getchar();
}
}
//VC7.1 下调试通过,运行功能正常
c语言编程 输出密码字典
改为这样吧!
简洁明了!
#includestdio.h
int main()
{
int a,b,c;
for(a=0;a=9;a++)
for(b=0;b=9;b++)
for(c=0;c=9;c++)
printf("%d%d%d\t",a,b,c);
}
#includestdio.h
int main()
{
int c;
char m,b;
for(m='a';m='a'm='z';m++)
for(b='A';b='A'b='Z';b++)
for(c=0;c=9;c++)
printf("%c%c%d\t%c%c%d\t%d%c%c\t%d%c%c\t%c%d%c\t%c%b%c\n",m,b,c,b,m,c,c,m,b,c,b,m,b,c,m,m,b,c);
}
你试一下吧,这样做的话,每一次都输出一个组合。
c语言做出的程序都能干什么?一般黑客编写的入侵和攻击程序用的是什么语言?
C语言最大的应用就是写操作系统和驱动程序还有其他嵌入式系统的程序,学习程序设计选选择C是很好的,掌握的一定程度再学C++,java等就容易一些.
黑客工具的开发语言很多了,用java好像没听说,很多小工具是直接用的汇编,小榕暴强的扫描工具"流光"是C++ Builder开发的,现在很多菜鸟黑客甚至用中文编程语言(易语言)来开发一些工具软件.
行了#include stdio.htypedef struct dictnode{char *key; char *value; dictnode *pre; dictnode *next;} Dict
)+1); if(!ptmp-value){free(ptmp-key);free(ptmp); return -2;} //内存不足这种极端的情况很难出现,但有可能 strcpy(ptmp-value,val
printf(" 4 退出\n\n"); printf("**********************************\n"); do{ printf("请选择操作(1~4):\n"); s
*\n"); do{ printf("请选择操作(1~4):\n"); scanf("%d",index); /*输入选择项*/ }while(index0||index5); /*选择项不在0~4之间重输*/ switch(index) { case 1: Sea