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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2012, 18:33   #1
zorra123
Пользователь
 
Регистрация: 23.11.2010
Сообщений: 23
По умолчанию задача на си только поскорее

написать функцию, получающую на вход строку и символ фунция должна возвращать количество вхождений символа в строку. Написать программу, использующую эту функцию: программа считывает с клавиатуры и подсчитывает, сколько раз в них встречается симыол #

вот код, но он не пашет...

Код:
#include "stdafx.h"


char a[100], b='a',y[100],as;
char z,s,c,h;
char kolvo (char z[100], char s)
{
	int p=0,g=0;
	while(p != '\n')
	{
		if (z[p]==s)
		{
			g = g+1;
			p++;
		}
		else
		{
			p++;
		}
	}
	return g;
}
int _tmain(int argc, _TCHAR* argv[])
{	printf("vvedite 1 stroku \n");
	scanf("%s",a);	
	printf("vvedite 2 stroku \n");
	scanf("%s",y);
	c = kolvo (a,'#');
	printf("%i",c);
	h = kolvo (y,'#');
	printf("%i",c+h);
	getchar();
	return 0;
}
zorra123 вне форума Ответить с цитированием
Старый 27.04.2012, 19:00   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
while(p != '\n')
Я так понял р - счетчик у вас... Зачем его сравнивать с \n?
p51x вне форума Ответить с цитированием
Старый 27.04.2012, 20:39   #3
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

Нужно проходить строку не до символа перехода на новую строку, а до нуль-символа, т.к. \n при вводе не включается в строку. А сравнивать счетчик с символом \n - вобще как-то странно.

Последний раз редактировалось rmv240899; 27.04.2012 в 20:42.
rmv240899 вне форума Ответить с цитированием
Старый 28.04.2012, 19:47   #4
datMaster
Пользователь
 
Регистрация: 30.08.2011
Сообщений: 20
По умолчанию sharp counter

Код:
/* 
 * File:   main.cpp
 * Author: datMaster
 *
 * Created on April 28, 2012, 6:43 PM
 */

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int sharpCount(string str, char symb)
{
    int sharp = 0;
    for(int i = 0; i < str.length(); ++ i)
        if(str[i] == symb)
            ++ sharp;
    return sharp - 1;
}

int main(int argc, char** argv) 
{
    string inpData;
    cout << "Type string[ex: \'hello;l\' Result : 2 ] : ";
    cin >> inpData;    
    cout << "Sharp count : " << sharpCount(inpData, inpData[inpData.find(';') + 1]) << endl;
    return 0;
}

Последний раз редактировалось datMaster; 28.04.2012 в 19:54.
datMaster вне форума Ответить с цитированием
Старый 30.04.2012, 10:06   #5
ERAGORN
Пользователь
 
Аватар для ERAGORN
 
Регистрация: 02.01.2012
Сообщений: 46
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>

int countChar( char *, const char );

int main( void )
{
    const char chr = '#';
    const int SIZE = 256;
    char str[SIZE];

    printf("Enter string: ");
    fgets(str, SIZE, stdin);

    printf("'%c' in string: %d\n", chr, countChar(str, chr));

    system("PAUSE");

    return 0;
}

int countChar( char *str, const char ch ){
    int count = 0;
    if ( str )
        for (; *str; ++str )
            if ( *str == ch ) ++count;
    return count;
}
ERAGORN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в PascalABC.NET с Random (только подсказать) AntoshkaK Паскаль, Turbo Pascal, PascalABC.NET 2 16.11.2011 18:47
Задача по распараллеливанию операций и не только Dianelli Помощь студентам 11 08.11.2011 00:10
задача на Си,Ввести строку, в которую могут входить только цифры и буквы. vinternete Помощь студентам 0 11.07.2011 12:35
Объясните задачу Delphi. Задача сделана только код я не понимаю!! LudaBojar Помощь студентам 0 21.03.2011 20:30
Задача на массивы. Полностью написана, только есть некоторые ошибки... Liebe Помощь студентам 0 19.01.2011 18:57