在c ++中创建一个程序来计算字母字符的出现次数,该字母字符会计算字符串中的字母
我遇到了不同的代码,但是对我们的教授来说没有什么好,我的教授只想要
#include <iostream>
,#include<conio.h>
和using namespace std;
,用户输入的字母就是印刷品或成果
这可能会有所帮助,这是我教授以前的代码:
for(int y=0; y<=9; y++){
int counter=0;
for (int x=0; x<=99;x++){
if (refchar[y]==userchar[x]){
counter++;
}
}
cout<<refchar[y]<<"="<<counter <<"\n";
}
getch();
return 0;
}
这是我的代码:
int main(){
string refchar="char alphabet[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V','W','X','Y','Z'};
";
char userchar[500]="";
cout<<"Enter number:";
cin>>userchar;
for(int y=0; y<=9; y++){
int counter=0;
for (int x=0; x<=99;x++){
if (refchar[y]==userchar[x]){
counter++;
}
}
cout<<refchar[y]<<"="<<counter <<"\n";
}
getch();
return 0;
}
答案 0 :(得分:0)
要计算string
中std::map<char, int> occurrences;
for (const auto& character : the_string) {
occurrences[character]++;
}
的出现次数,您可以执行以下操作:
char
现在可以在occurrences
映射中查找/使用所有可能的<activity android:name=".ui.chat.ChatActivity"
android:windowSoftInputMode="adjustResize|stateAlwaysHidden"/>
作为键,并且该值将是该字符的计数。
答案 1 :(得分:0)
即使这不是一个好的代码,您也只要求这三个标头,所以我写了这样的代码:
#include <iostream>
using namespace std;
int main() {
char userchar[500]="";
cin.getline(userchar, sizeof userchar);
int charscnt[128] = {0,};
int idx = 0;
while (userchar[idx] != 0) {
charscnt[static_cast<int>(userchar[idx])]++;
idx++;
}
for (int i = 0; i < sizeof charscnt / sizeof(int); i++) {
if (charscnt[i] != 0) {
cout << static_cast<unsigned char>(i) << "=" << charscnt[i] << endl;
}
}
return 0;
}
逻辑类似于使用Jasper中提到的map,但是我使用了一个小的数组来模拟map。
答案 2 :(得分:0)
在不使用来自string.h和stdlib.h的字符串处理命令的情况下,一次仍然可以通过逐个字节地遍历字符串直到找到终止的'\ 0'字节来完成此操作。
当然,我们也假设一组简单的1 letter
= 1 byte
个字符。它通常比这更复杂,并且您可能需要处理多字节字母等。
#include <iostream>
const int ALPHABET_SIZE = 256; // maximum size of iso-8859-1 / ASCII
int main(int argc, char **argv)
{
int i;
const char *input="Some input string to search"; // string to process
unsigned int counts[ALPHABET_SIZE]; // used to tally found letters
// initialise the count table
for (i=0; i<ALPHABET_SIZE ; i++)
counts[i] = 0;
// c-strings are terminated with a '\0' character
// step through each character, tallying it up
const char *ptr = input;
while (*ptr != '\0')
{
int letter_num = (int)(*ptr); // a letter is just a number
counts[letter_num] += 1;
ptr += 1;
}
// print the count table
for (i=0; i<ALPHABET_SIZE ; i++)
{
// if we have that letter
if (counts[i] > 0)
std::cout << (char)i << " => " << counts[i] << "\n";
}
return 0; // all is ok
}
答案 3 :(得分:0)
最好的衬垫是使用 std :: count
查看自我说明代码:
#include <iostream>
#include <algorithm>
#include <string>
int main()
{
std::string s = "Hi How Are You Doing ?";
size_t n = std::count(s.begin(), s.end(), ' ');
std::cout << n;
}