Προς το περιεχόμενο

C --> Πόσες φορές εμφανίζεται ένας χαρακτήρας


Penthesilea

Προτεινόμενες αναρτήσεις

Δημοσ.

Τυπικά το "συμβολοσειρά" (string) παραπέμπει σε πίνακα χαρακτήρων ή έστω έτσι πιστεύω :)

 

Το πώς "αναπαρίσταται" στην μνήμη έχει σχέση με το πώς κάνεις το acquisition;

 

Συν ότι δεν ελέγχω για μη ψηφία στο string, συν ότι δεν τυπώνω συχνότητες ψηφίων που δεν υπάρχουν στο string :)

 

Από την στιγμή που λέει πόσες φορές εμφανίζεται κάθε χαρακτήρας και, επιπλέον, από την στιγμή που ξέρεις ότι είναι μόνο αριθμοί τότε το '0' σημαίνει ότι αυτός ο χαρακτήρας δεν εμφανίστηκε. Άρα, εάν τυπώνεις το '0', τυπώνεις το πόσες φορές εμφανίστηκε ο συγκεκριμένος χαρακτήρας :P

  • Απαντ. 35
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Πω πω..ξε-str-αβωθηκα και μια λυση με ενα τιμιο map δεν ειδα.......

 

Μικρή μεν σε C++, τίμια δε;

 

>
#include <iostream>
#include <string>
#include <ctype>
#include <map>

using namespace std;

int main(void) {

string strIn = "123456789a7";
map<char, int> mapChr;

for(string::iterator itChr = strIn.begin(); itChr != strIn.end(); itChr++)
	if(isdigit(*itChr))
		mapChr[*itChr]++;
for(int Chr = '0'; Chr <= '9'; Chr++)
	cout <<(char)Chr<<" = "<<mapChr[Chr]<<endl;

return 0;
}

 

ΕΞΟΔΟΣ:

>0 = 0
1 = 1
2 = 1
3 = 1
4 = 1
5 = 1
6 = 1
7 = 2
8 = 1
9 = 1

 

Υ.Γ.

Έχει δοκιμασθεί σε C++ Builder.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...