- •1.1. Символьные данные и их представление в памяти эвм
- •1.2. Строковые данные и их представление в памяти эвм
- •1.3. Ввод текстовых данных во время работы программы
- •1.3.1. Форматный ввод
- •1.3.2. Потоковый ввод
- •1.3.3. Специальные функции ввода текстовых данных
- •1.4. Вывод текстовых данных
- •1.4.1. Форматный вывод
- •1.5.2. Операции над строковыми данными
- •1.6. Управление дисплеем в текстовом режиме
- •Примеры выполнения работы
- •Задание на лабораторную работу
- •Требования к отчету
- •Контрольные вопросы
Примеры выполнения работы
Разбить введенную пользователем строку на составляющие ее слова.
#include <stdio.h>
#include <string.h>
void strcpy(char *s1, char *s2, int n1, int n2)
{
int y;
for(y=n1; y<n2; y++)
{
s1[y-n1]=s2[y];
}
s1[y-n1]='\0';
}
void main()
{
char str[255];
char **sm;
int i, j, t=0, k, *n;
gets(str);
for(i=1; i<strlen(str)-1; i++)
{
if (str[i]==' ') t++;
}
sm=new char*[t+1];
n=new int[t+1];
i=0; k=0;
for(j=0; j<=strlen(str); j++)
{
if(str[j]==' ' || j==strlen(str))
{
n[k]=j-i;
sm[k]=new char[n[k]];
strcpy(sm[k], str, i, j);
i=j+1;
k++;
}
}
printf("RESULT\n");
for(i=0; i<k; i++)
{
printf("%s\n", sm[i]);
}
}
Задание на лабораторную работу
Написать программу, которая читает с клавиатуры строку символов, преобразует ее и выводит результат на дисплей.
№ |
|
1 |
Удалить из строки все цифры и переписать их в конец строки. |
2 |
После каждого четвертого пробела вставить точку и удалить последние "лишние" символы. |
3 |
Подсчитать количество цифр в строке и заменить каждую цифру полученным числом. |
4 |
Перед каждым знаком '=' вставить символ, стоящий за ним, если таковой имеется. |
5 |
Удалить из строки все буквы 'а' и добавить в ее начало недостающее число пробелов, равное количеству удаленных букв. |
6 |
Заменить в строке все латинские буквы на следующие по алфавиту буквы, а букву 'z' заменить на 'a'. |
7 |
Заменить в строке все цифры предыдущими по значению цифрами, а '0' заменить на точку. |
8 |
Каждый символ, стоящий в нечетной позиции, обменять со следующим за ним символом строки. |
9 |
Если в строке цифр больше, чем букв, заменить все цифры знаком '+'. В противном случае заменить все буквы знаком '-'. |
10 |
Подсчитать количество слов в строке. |
11 |
Если в строке пробелов меньше, чем цифр, удвоить каждый пробел. |
12 |
Каждую закрывающую скобку ')', для которой нет парной открывающей '(', заменить на '?'. |
13 |
Если строка содержит не менее четырех пробелов подряд, заменить в ней первые 6 символов на 6 последних, записанных в обратном порядке. |
14 |
Если строка начинается и оканчивается одним и тем же символом, во всей строке заменить его четвертым символом строки. |
15 |
Если строка содержит больше пяти латинских 'а', заменить все буквы строки следующими по алфавиту символами. |
16 |
После каждого десятого символа вставить знак '-', а после каждого третьего символа (без учета '-') вставить запятую, "лишние" символы в конце строки удалить. |
17 |
Найти соотношение букв и цифр в строке, напечатать его и удалить все символы '*' из строки, добавив в конец такое же количество символов '!'. |
18 |
В строке все вхождения слова "Да" заменить на "Нет". Игнорируется разница между строчными и заглавными буквами. |
19 |
В строке убрать все лишние пробелы между словами, оставив только по одному. |
20 |
В строке убрать все лишние пробелы между словами, оставив только по одному. |
21 |
Подсчитать количество различных латинских букв |
22 |
Найти и напечатать самое длинное слово в строке. |
23 |
Найти и напечатать самое короткое слове в строке. |
24 |
Напечатать все различные символы самого длинного слова в строке. |
25 |
Если в строке содержится более четырех круглых скобок, открывающих и закрывающих вместе, первые и последние три символа заменить на средний при нечетной длине строки или на любой из средних при четной длине. |