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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2010, 19:40   #1
Romario92
Пользователь
 
Регистрация: 15.10.2010
Сообщений: 49
По умолчанию Символьные массивы.

Вот есть програма сделаная...
Задание
Ввести свою Фамилию, имя и Отчество, как одно текстовое поле. Определить длину и количество букв "а" в нем. Решить задачу одним из способов:
1) рассматривая введенный текст, как массив символов.
2) используя функцию из библиотеки string.h

Задача: Начинается ли хотя бы одно слово на букву "М"
Код:
#include <iostream>
#include <string>
 
int main()
{
    const int n = 256;
    char m[n];
    std::cin.getline(m, n);
    int count = 0;
    int x = 0;
    for(int i = 0; i < n; i++)
    {
            if(m[i] == 'a')
                 count++; 
            else if(m[i] == 'M')
                 x++;         
 
    }   
    std::cout << "Kolu4ectvo bykv 'a' = " << count << std::endl;
    std::cout << "Dluna ctroku (+ probelu) = " << strlen(m) << std::endl;
    std::cout << "Kolu4ecrvo clov Ha4uhaywuec9 Ha bykve 'M' = " << x;
    std::cin.get();   
    std::cin.get();  
}
Как мне переделать код что бы вместо етого задания:Начинается ли хотя бы одно слово на букву "М" сделать что бы фамилия выводилась столбцом...?

Последний раз редактировалось Stilet; 29.10.2010 в 15:46.
Romario92 вне форума Ответить с цитированием
Старый 29.10.2010, 15:33   #2
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
По умолчанию

если не понравится, переделай под себя...но прога работает...учтен случай, когда в начале строки стоят пробелы...в качестве фамилии берется первое слово в строке...

Код:
#include <iostream>
#include <conio.h>
//используй это объявление, чтобы не писать везде пространство имен std::
using namespace std;

void main()
{
	int count_M=0, count_A=0,len=0,k=0;
	char * username = new char [256];
	char * name = new char [256];
	cout<<"Usarname, name, fathername\n";
	cin.getline(name,256);
	for(int i = 0;*(name+i)!='\0'; i++)
{
	len++;
if(*(name + i) == 'a')
count_A++;
else if (((i==0)&&(*(name)=='M'))||((*(name + i-1) == ' ')&&(*(name + i) == 'M')))
count_M++;
}

	for (int i = 0;*(name+i)!='\0'; i++)
	{
		if (*(name + i)!=' ')
		{
			while (*(name + i)!=' ')
			{
				if (*(name + i)!='\0'){
				*(username + k) = *(name + i);
				i++; k++;}
				else break;
			}
			*(username + k) = '\0';
			break;
		}
	}
cout << "\nKolu4ectvo bykv 'a' = " << count_A << endl;
cout << "Dluna ctroku (+ probelu) = " << len << endl;
cout << "Kolu4ecrvo clov Ha4uhaywuec9 Ha bykve 'M' = " << count_M<<endl;
for (int i = 0;*(username+i)!='\0'; i++)
cout<<*(username + i)<<endl;

delete [] name;
delete [] username;
getch();
}
JeyKip вне форума Ответить с цитированием
Старый 29.10.2010, 16:01   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Рискну предложить экзотический вариант
Код:
#include <string>
#include <conio.h>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	string s="";
	int СколькоБуквА=0,Длина=0;
	for(char c=getch();c!=13;s+=c,
		СколькоБуквА+=(c=='a')?1:0,Длина++,c=getch()
		) printf("%c",c);

	printf("\nСколькоБуквА=%d\nДлина=%d",СколькоБуквА,Длина);
	printf("\nДлина строки=%d",s.length());
	getchar();

	return 0;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Символьные массивы aus Общие вопросы C/C++ 1 27.10.2010 12:31
символьные массивы и записи Cepgeich Паскаль, Turbo Pascal, PascalABC.NET 2 09.04.2010 00:01
Символьные массивы и строки. kGxDD Паскаль, Turbo Pascal, PascalABC.NET 1 24.04.2009 11:39
Одномерные символьные массивы chubakasun Помощь студентам 1 31.03.2009 02:26
Помогите с прогой. Тема: символьные массивы Алексей Д. Помощь студентам 6 02.04.2008 22:10