Подсчитывает количество букв и строки в которых они находятся.| Код | #include <iostream> #include <cctype> #include <cstdlib> #include <string> #include <vector> using namespace std;
void main() { string str = "asd;df_=\45;dgfe345-; 5jt93j fe-43'."; // тест-строка int kchar = 0, // количество совпавших символов numstring=1; // номер строки в которой найден символ vector<int> stroka; // здесь номера строк
// проверяем все символы ASCII-хотя все ненадо... лень соображать было... for ( int i=-128; i<128; i++, kchar=0, numstring=1) { for ( size_t j=0; j<str.length(); j++ ) if ( str[j] == ';' ) { numstring++; continue; } else if ( isalpha(i) && i == str[j] ) // символ англ. алфавита? { kchar++; // количество символов if ( stroka.empty() || numstring != stroka[stroka.size()-1]) stroka.push_back(numstring);// Добавляем номер строки }
if (kchar) { cout<<(char)i<<" kol-wo: "<<kchar<<" Nuber string: "; for ( vector<int>::iterator x=stroka.begin(); x!=stroka.end(); x++ ) cout<<*x<<ends; // вывод номеров строк cout<<endl; } stroka.clear(); }
system("PAUSE"); } |
Только программа проверяет принадлежность символа к английскому алфавиту, а для того чтоб проверяла принадлежность к русскому вроде так можно(ASCII), хотя возможно и подругому проверяется.| Код | char c = 'ы'; if((c>='А' && c<='п')||(c>='р' && c<='ё') /*|| isalpha(c)*/) { ... };
|
Кстати, подсчитывать надо только буквы алфавита, а не все символы подряд, я так понял. |