Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2011, 08:51   #1
Twisterr
Пользователь
 
Регистрация: 25.09.2011
Сообщений: 10
По умолчанию Подсчет букв в строке с использованием функции

Я должен посчитать сколько букв в каждой строке с использованием функции int countAccurance(char arr[maxn], char ch). Но вывод должен быть в обратном порядке. Вот пример:
Input:
First line contains N(1<=N<=100).
Then N lines are given in the following format : "one char" a space and that char array.
Input
2
a abracadabra
b babaluba
Output
3 b in babaluba
5 a in abracadabra
Код:
#include <iostream>
#include <cstring>
 
using namespace std;
 
int const maxn=200;
 
 int countAccurance(char arr[maxn], char ch);
   int main (){
     int N=0;
     char ch1;
     char str1[maxn];
     cin>>N;
         for(int i=0;i<N;i++)
         {
                cin>>ch1>>str1;
 
                cout<<countAccurance(str1,ch1)<<" "<<ch1<<"in "<<str1<<endl;}
    
    return countAccurance(str1,ch1);
 }
   int countAccurance(char arr[maxn], char ch){
     int res=0;
     int strLength=strlen(arr);
     for(int i=0;i<strLength;i++)
       if(arr[i]==ch)
                   res++;
         
   
     return res;
Twisterr вне форума Ответить с цитированием
Старый 15.10.2011, 13:19   #2
БалаШагаЛ
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 131
По умолчанию

Так надо двумерный массив создавать тогда. И почему у вас в функцию передаётся массив? Вроде же указатель надо передавать.
Вот как-то так.
Код:
#include <iostream>
#include <string.h>

using namespace std;

int const maxn=200;

int countAccurance(char *arr, char ch);

int main()
{
    int N=0;
    cin >> N;
    char ch1[N];
    char str1[N][maxn];
    for (int i=0;i<N;i++)
    {
        cin >> ch1[i] >> str1[i];
    }
    cout << "\n\n\n";
    for (int i=N-1;i>=0;i--)
    {
        cout << countAccurance(str1[i],ch1[i]) << " " << ch1[i] << " in " << str1[i] << "\n";
    }
}

int countAccurance(char *arr, char ch)
{
    int res=0;
    for (int i=0;i<strlen(arr);i++)
    {
        if (arr[i]==ch)
          res+=1;
    }
    return res;
}
БалаШагаЛ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестановка букв в строке на си Brabus Помощь студентам 7 08.11.2010 22:58
подсчет букв С в последнем слове Obey177 Помощь студентам 7 10.09.2010 16:06
Подсчет букв в словах (Си) N.o.n.a.m.e Помощь студентам 4 12.08.2010 17:01
Pascal. на подсчет букв. Quiz Помощь студентам 10 15.01.2009 23:02
Подсчет русских и английских букв в текстовом файле. Ветас Помощь студентам 6 15.01.2009 22:08