Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Топ:
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
2020-08-21 | 340 |
5.00
из
|
Заказать работу |
|
|
Программа в цикле вводит строки текста, по нажатию произвольной клавиши поочередно выделяет каждое слово строки, проверяет его на наличие букв и цифр, выводит длину минимального слова в строке и само это слово.
#include <string.h>
#include <ctype.h>
int main ()
{const int n=70;
char s[n],*st,str[n];
unsigned min;
bool flag=0;
cout << "input of string" << endl;
while (cin.getline(s, n)) //цикл ввода строк, выход – Ctrl+z
{ cout << endl;
st=strtok(s,",.:;!?"); //выделение 1-ой лексемы (слова)
min=strlen(st); //получение в min длины слова
strcpy_s(str,st); //запоминание минимального слова
while (st!=NULL)
{ cout << st << endl;
_getch();
for (unsigned j=0; j<=(strlen(st)-1);j++)
if (isalnum(st[j])) //проверка слова на буквы и цифры
flag=1;
else
{
flag=0;
break;
}
if (flag)
if (strlen(st)<min)
{min=strlen(st);
strcpy_s(str,st);
}
st=strtok(NULL,",.:;!?"); //выделение i-ой лексемы
} //end while выделения лексем
cout << "min dlina = " << min << "\nmin lexema = " << str<< endl;
cout << "input of string or Ctrl+z" << endl;
}//end while ввода строк
_getch();
return 0;
}
Сортировка вводимых с клавиатуры строк *
Вводимые строки помещаются в двумерный массив. Признак завершения ввода – STOP_STRING=“*!*”. Сортировка проводится по методу пузырька в порядке возрастания кода первого символа (по алфавиту). При сортировке перемещаются при необходимости не сами строки, а указатели на них. Для сравнения строк используется библиотечная функция strcmp().
// prot. h
void vvod_str (char **,const int, int&);
void vyvod_str (char **, int);
void sortirovka (char **, int);
// stdafx.h
#pragma once
#define WIN32_LEAN_AND_MEAN
|
#include <stdio.h>
#include <tchar.h>
// TODO: reference additional headers your program requires here
#include <iostream>
#include <conio.h>
#include <string.h>
#include "prot.h"
using namespace std;
//fun.cpp
#include "stdafx.h"
void vvod_str (char **mas_str,const int n, int &dn)
{ const char * STOP_STRING= "*!*";
cout << "Input of string:" << endl;
for (int index=0; index<n; index++)
{cin>> mas_str[index];
if (!strcmp(mas_str[index], STOP_STRING))
{dn=index;break;}
}
}
void vyvod_str (char **mas_str, int n)
{ cout << "----------------------" << endl;
int m=n;
for (int index=0; m>0; m--)
cout << mas_str[index++] << endl;
}
void sortirovka (char **pointers, int n)
{ char *ptr;
for (int index=0; index<n; index++)
for (int i=n-1; i > index; i--)
if (strcmp(pointers[i-1], pointers[i])>0)
{ptr= pointers[i];
pointers[i] = pointers[i-1];
pointers[i-1] = ptr;
}
}
// main.cpp
#include "stdafx.h"
int main()
{
const int STRING_NUMBER= 100; //количество строк
const int BUFFER_SIZE =81; //количество символов в строке
char buffer [STRING_NUMBER][BUFFER_SIZE]; //двумерный массив строк
char *pointers [STRING_NUMBER]; //массив указателей на строки
int dn; //количество введенных строк
//присваивание значений элементам массива указателей
for (int index=0; index<STRING_NUMBER; index++)
pointers[index] = buffer[index];
//или pointers[index] = &buffer[index][0];
vvod_str(pointers, STRING_NUMBER, dn); //ввод строк
vyvod_str(pointers, dn); //вывод строк
sortirovka (pointers, dn); //сортировка строк
vyvod_str(pointers, dn);
_getch();
return 0;
}
Сортировка строк в зависимости от признака, передаваемого функции main() через аргумент argv *
Программа сортирует строки в лексикографическом порядке, возрастающем или убывающем в зависимости от признака, передаваемого функции main() через аргумент argv, и выводит их на стандартный вывод. Исходный текст программы с комментариями и подробное описание выполняемых действий, представлены в лекции 1.
Инвертирование строки с помощью рекурсивной функции
void reverse();
int main()
{ reverse();
cout << endl;
_getch();
|
return 0;
}
void reverse()
{ char c= _getche();
if (c!= 13) reverse(); //’\r’
cout << c;
return;
}
[1] Об этих способах определения строк мы поговорим чуть позже в данной лекции
[2] Об этих способах определения строк мы поговорим чуть позже в данной лекции
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!