Форум программистов, компьютерный форум CyberForum.ru

Использование указателей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ циклы http://www.cyberforum.ru/cpp-beginners/thread373598.html
Подскажите если файл состоит из блоков (например массивов )как переходить из блока к блоку с помощью цикла while , если действия в одном блоке закончены,а блок ещё не дошёл до конца, а следующее действие надо выполнять с начала другого блока?
C++ Не могу понять задачу с векторами вот задача http://s017.***********/i429/1110/ab/26d7470b188f.jpg как ее можно реализовать http://www.cyberforum.ru/cpp-beginners/thread373593.html
C++ Помогите с функцией
нужно написать и протестирувать функцию, котороя определяет ли входит буква в заданою строку
C++ Входит ли буква в заданною строку не более двух раз
Написать и протестировать функцию, которая определяет, входит ли буква в заданною строку не более двух раз.
C++ Помогите разрешить задачу на стандартные функции на с! http://www.cyberforum.ru/cpp-beginners/thread373538.html
Составить программу вычисления значения функции F, используя обращения к функции. Вид функции и заданы в таблице. Спасибо за помощь!!!!
C++ СДНФ....Помогите! Сложное высказывание задано таблицей истинности. Построить совершенную дизюнктивну нормальную форму (СДНФ). Нужно написать программу...я знаю как ее построить в тетради но не знаю как это сделать в с + +....Помогите пожалуйста... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
27.10.2011, 19:20     Использование указателей
Цитата Сообщение от Busterr Посмотреть сообщение
Не могли бы вы показать как решить это через указатели. Решение правильное.
Код
#include <iostream>
#include <cstring>

using namespace std;
int tot(char arr[], char ch){
	int k=0;
	
	for(int i=0;i<strlen(arr);i++)
	if(arr[i]==ch)
		k++;
	
	return k;
}


int main(){
	int n; 
	char a[100][100]; char b[30];
	cin>>n;
	
	for(int i=0;i<n;i++)
	   cin>>b[i]>>a[i];
	
	for(int i=0;i<n;i++)
		{
			cout<<tot(a[i],b[i])<<" "<<b[i]<<" "<<"in "<<a[i]<<endl;
	}
	return 0;
}
Во-первых, у вас неправильное решение, так как размерность массива b не совпадает с размерностью строки массива a. То есть, например, если пользователь в качестве числа n ввел значение 100 (а для массива a это допустимое значение, то у вас получится выход за границу массива b.

Во-вторых, не совсем понятно, что имеется в виду "седлать через указатели". Я могу лишь предложить, что нужно перегрузить функцию tot. Вы ее можете перегрузить следующим образом.

C++
1
2
3
4
5
6
7
8
9
10
11
int tot(char *first, char *last, char ch)
{
    int k=0;
    
    for ( ; first != last ; ++first )
        {
       if( *first == ch )  k++;
        }
    
    return k;
}
 
Текущее время: 15:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru