哈希字符串,以及getline读一行字符

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4
 5 //字符哈希
 6 int main() {
 7     int char_hash[128] = { 0 };     //用字符的ASC2码来计数,这串字符,每个元素出现了几次
 8     string s ;                      //asc2码以整数存储
 9     getline(cin,s);
10     cout << s<<endl;
11     for (int i = 0; i < s.length(); i++) {
12         char_hash[s[i]]++;
13     }
14     for (int i = 0; i < 128; i++) {
15         if (char_hash[i] > 0) {
16             printf("%c[%d], 出现次数为:%d\n", i,i, char_hash[i]);
17         }
18     }
19     system("pause");
20     return 0;
21 }

哈希的方式就是根据其字符ASCII码,对应过去,关键字值就是其ASCII码。

string s;

getline(cin,s);//读一行,带有空格的也可以

一步步朝前走,总会有收获的,keep quiet.  2020-03-20

原文地址:https://www.cnblogs.com/ccllcc/p/12532571.html

时间: 2024-10-10 08:48:19

哈希字符串,以及getline读一行字符的相关文章

C++学习46 getline()函数读入一行字符 一些与输入有关的istream类成员函数

getline函数的作用是从输入流中读取一行字符,其用法与带3个参数的get函数类似.即    cin.getline(字符数组(或字符指针), 字符个数n, 终止标志字符) [例13.7] 用getline函数读入一行字符. #include <iostream> using namespace std; int main( ) { char ch[20]; cout<<"enter a sentence:"<<endl; cin>>c

关于C语言读取文件时候多读一行

梗概:为什么C语言读取文件到结构体时为什么整天多读一行?一切都是[!feof(fp)]的错!!! while (!feof(fp)) {  fgets(buffer,256,fp);  j++; } 像这样的代码,是很多C语言学者经常犯的错误!! feof()这个函数是用来判断指针是否已经到达文件尾部的.若fp已经指向文件末尾,则feof(fp)函数值为"真",即返回非零值:否则返回0. 对呀!那有什么问题的呢? 其实feof() 这个函数是当读到文件结束符就返回 true 值,而非到

统计一行字符中各类字符的个数

/*输出一行字符,分类统计字符个数*/ #include<stdio.h>#include<stdlib.h>int main(void){ int letter=0,space=0,digit=0,other=0;/*定义变量并初始化*/ char c;/*定义字符串c*/ printf("请输入一行字符,以回车键结束\n"); while((c=getchar())!='\n')/*判断c是否是回车键*/ if(c>='a'&&c<

华为OJ——输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数

题目描述 输入一行字符,分别统计出包含英文字母.空格.数字和其它字符的个数. 输入描述: 输入一行字符串,可以有空格 输出描述: 统计其中英文字符,空格字符,数字字符,其他字符的个数 输入例子: 1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][ 输出例子: 26 3 10 12 <span style="font-size:18px;">import java.util.*; public class Main { pu

1200: 字符串数字字母空格其他字符的个数

题目描述 输入一行字符,分别统计出其中英文字母.空格.数字和其他字符的个数. 输入 一行字符. 输出 分别输出这行字符中的英文字母.空格.数字和其他字符的个数,用空格隔开.请注意行尾输出换行. 样例输入 What are you doing? 123456 样例输出 15 4 6 1 1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 char str[1000]; 5 fgets(str,1000,stdin); 6

python输入一行字符,判断不同字符数量

输入一行字符,判断不同字符的数量, 分别用for循环和while循环完成 for循环 运用了字符串方法, isupper()判断是否为大写字母 islower()判断是否为小写字母 isdigit()判断是否为数字 1 n = input("输入一行字符:") 2 daxie = 0 3 xiaoxie = 0 4 num = 0 5 other = 0 6 for data in n: 7 if data.isupper(): 8 daxie += 1 9 elif data.isl

JS中比較2个字符串内元素的不同(字符1, 字符2, 分隔符可选)

比較2个字符串内元素的不同(字符1, 字符2, 分隔符可选) 文件: diff.js // 演示样例使用方法 /* var str1 = "tie, mao, 55"; var str2 = "tie, mao, csdn"; var result = diff(str1, str2, ','); // 对象 var rs = "" + result; // " 55, csdn" var df1 = result.diff1

【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配...

37.(字符串)有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配,则两个字符串可以联接,问这 n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误. 分析:如果出现循环,则返回错误 这句不懂 具体做法是先给每个字符串建一个vector 存入每个字符串后面可以匹配的字符串序号 然后遍历所有的搭配情况,找到最长的. 我的遍历代码很丑... 可谓又臭又长..... 深深的自我鄙视. /* 37.(字符串) 有 n 个长为 m+1 的字符串

数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数

数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i] == arr[j]){ arr.splice(j,1); j--; } } } arr.sort(function(a,b){ return a-b; // 从小到大排序 }) alert(arr); // 0,1,2,5,6,8,9,81 arr.sort(fu