C 常用的输入输出 栈 哈希 文件写读 实现 字符串处理
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h> //引用动态分配数组的malloc
typedef struct stack
{
int top;
char str[10] ;
stack * next;
}SqStack;
SqStack * InitStack()
{
SqStack * ret = NULL;
ret = (SqStack*)malloc(sizeof(SqStack));
if (ret)
{
/*将栈的长度初始化为0*/
ret -> top = 0;
}
return ret;
}
typedef struct HashNode
{
char data[20];
int count;
HashNode * next;
};
//哈希表
HashNode HashTable[100];
// 最简单hash函数 `
int hash_function( char const *p)
{
int value = 0;
while (*p != '/0')
{
value = value * 31 + *p++;
value = value % 100;
}
return value;
}
//hash增加节点,对冲突使用链地址法解决
// 添加单词到hash表
void append_word(char const *str)
{
int index=hash_function(str);
HashNode hn = HashTable[index];
while(hn != NULL)
{
if(strcmp(str,hn.data)==0)
{
hn.count++;
return;
}
hn=hn.next;
}
//新建一个节点
HashNode nhn=new HashNode;
nhn.count=1;
nhn.data=new char[strlen(str)+1];
nhn.next=HashTable[index];
HashTable[index]=nhn;
}
int main()
{
//哈希表
char * str_hs="213";
append_word(str_hs);
//new malloc 不同
//malloc 和 new 至少有两个不同: new 返回指定类型的指针,并且可以自动计算所需要大小;new 自动进行初始化,malloc是随机的;new 是关键字,malloc不是;
//malloc 释放需要判断释放null,new则不需要
SqStack* ss1=new SqStack;
delete(ss1);
SqStack* ss2=(SqStack*)malloc(sizeof(SqStack));
free(ss2);
//栈实现
SqStack * ss;
ss=InitStack();
//字符串处理
//长度 返回值是字符串s的长度。不包括结束符'/0'。一个汉字占两个字节
char * str1="12 e43字";//print 8
int len= strlen(str1);
printf("%d",len);
char * str_1="1232";
char * str_2="2313";
int boolValue=strcmp(str_1,str_2);//0为相同
getchar();
//写文件,覆盖写
FILE * fp_w=fopen("b.txt","w");
FILE * fp_r2=fopen("a.txt","r");
char tmp3[15];
int tmp4;
while(fscanf(fp_r2,"%s %d",tmp3,&tmp4)!=EOF)
{
fprintf(fp_w,"%s %d\n",tmp3,tmp4);
}
fclose(fp_r2);
fclose(fp_w);
//读文件
FILE * fp_r=fopen("a.txt","r");
char tmp1[15];
int tmp2;
while(fscanf(fp_r,"%s %d",tmp1,&tmp2)!=EOF)
{
printf("%s",tmp1);
printf("%d\n",tmp2);
}
fclose(fp_r);
//输入
getchar();
char str[10];
scanf("%s",str);//遇空格结束
gets(str);//包含空格
//输出
printf("%s",str);
puts(str);
getchar();
return 0;
}
C 常用的输入输出 栈 哈希 文件写读 实现 字符串处理的更多相关文章
- Java常用的输入输出方法
对于经常上机刷题的来说,首先得解决输入输出方法,Java的输入输出流在Java学习过程的后面部分才会接触,但是我们可以掌握一些简单的,常用的输入输出方法 首先输出 大家最熟悉的莫过于输出方法,直接用S ...
- C#中常用的几种读取XML文件的方法
1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/
- Python 全栈开发八 文件处理
一.基本流程 打开文件得到文件句柄 将文件句柄赋值给一个变量 通过文件句柄对文件进行操作 关闭文件 二.基本操作 1.文件句柄 f = open("a.txt",encoding= ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- 八. 输入输出(IO)操作6.文件与目录管理
目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 Fi ...
- opencv 3 core组件进阶(3 离散傅里叶变换;输入输出XML和YAML文件)
离散傅里叶变换 #include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" ...
- Linux操作系统常用命令合集——第一篇-文件和目录操作(40个命令)
一.选项和参数的区别 在经过上一次的系统安装后我们已经成功登陆,登陆LInux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着“选项”(英文名:options)或“参数” ...
- Python全栈之路----文件处理
文件操作分为读.写.修改,我们先从读开始 f = open(file = 'D:/工作日常/ABCD.txt',mode = 'r',encoding = 'utf-8') #file 是文件路径 m ...
- java输入输出 -- java NIO之文件通道
一.简介 通道是 Java NIO 的核心内容之一,在使用上,通道需和缓存类(ByteBuffer)配合完成读写等操作.与传统的流式 IO 中数据单向流动不同,通道中的数据可以双向流动.通道既可以读, ...
随机推荐
- JPA entity versioning (@Version and Optimistic Locking)
详情见: http://www.byteslounge.com/tutorials/jpa-entity-versioning-version-and-optimistic-locking
- HDU-1113(map的运用)
Word Amalgamation Problem Description In millions of newspapers across the United States there is a ...
- PHP 支持的协议/封装协议列表
附录 L. 支持的协议/封装协议列表 目录 文件系统 Socket HTTP 和 HTTPS FTP 和 FTPS PHP 输入/输出流 压缩流 Secure Shell 2 音频流 以下是 PHP ...
- js 配置基础启动文件
页面启动文件boot.js,获取存放该文件的路径,放置通用的css,js代码,方便html页面调用. __CreateJSPath = function (js) { var scripts = do ...
- sql - 选出指定范围的行
Select no=Identity(int,1,1),* Into #temptable From dbo.tName order by fName --利用Identity函数生成记录序号 Sel ...
- Andriod ADT v22.6.2版本中在Mainactivity.java中使用fragment_main.xml中TextView控件对象的问题
众所周知,我们既可以在 activity_main.xml文件中控制activity中的view,也可以使用java代码的set..()方法控制它.在学习过程中,发现在ADT新版本中,和以前版本有区别 ...
- 关于AfterLogic WebMail 的.net版无法上传控件的解决办法
在使用AfterLogic WebMail做客户端的时候发现无论是在FF下还是在IE下发送邮件时附件怎么也无法上传,后来查看代码发现它使用的FLASH上传调用的上传代码是upload.php,问题就出 ...
- 利用CART算法建立分类回归树
常见的一种决策树算法是ID3,ID3的做法是每次选择当前最佳的特征来分割数据,并按照该特征所有可能取值来切分,也就是说,如果一个特征有四种取值,那么数据将被切分成4份,一旦按某特征切分后,该特征在之后 ...
- Faces.JavaServer Pages(JSP)
zhengly.cn atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性 1.1. Servlet和JSP规范版本对应关系:1 1.2. ...
- C语言中float,double类型,在内存中的结构(存储方式)
C语言中float,double类型,在内存中的结构(存储方式)从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以doubl ...