Считывать длину строки (только буквы, остальные символы не считаются) - C (СИ)
Формулировка задачи:
Задача такая: нужно написать программу, которая будет считывать длину строки (только буквы, остальные символы не считаются), строка вводится рандомно. Помогите, пожалуйста.
Решение задачи: «Считывать длину строки (только буквы, остальные символы не считаются)»
textual
Листинг программы
#include <stdio.h>
#include <time.h>
#define ALPHABET 26
void randomStringDown(int size) {
int newSize = size + 1;
int i;
char str[newSize];
for ( i = 0; i < size; i++ ) {
str[i] = rand() % ALPHABET;
str[i] += 'a';
}
str[size] = 0;
printf("%s", str);
printf("\n");
}
void randomStringUp(int size) {
int newSize = size + 1;
int i;
char str[newSize];
for ( i = 0; i < size; i++ ) {
str[i] = rand() % ALPHABET;
str[i] += 'A';
}
printf("%s", str);
printf("\n");
}
void randomStringMix(int size) {
int newSize = size + 1;
int i, flag;
char str[newSize];
for ( i = 0; i < size; i++ ) {
flag = rand() % 2;
str[i] = rand() % ALPHABET;
if ( flag < 1 ) {
str[i] += 'a';
} else {
str[i] += 'A';
}
}
printf("%s", str);
printf("\n");
}
int main() {
int size;
scanf("%d", &size);
srand(time(NULL));
randomStringDown(size);
randomStringUp(size);
randomStringMix(size);
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
и - Определяется константа ALPHABET, равная 26, которая представляет количество букв в алфавите.
- Определяются три функции: randomStringDown, randomStringUp и randomStringMix.
- Функция randomStringDown генерирует строку из случайных букв нижнего регистра.
- Функция randomStringUp генерирует строку из случайных букв верхнего регистра.
- Функция randomStringMix генерирует строку из случайных букв, чередуя нижний и верхний регистр.
- В функции main() пользователю предлагается ввести размер строки.
- Инициализируется генератор случайных чисел с помощью srand(time(NULL)).
- Вызываются функции randomStringDown, randomStringUp и randomStringMix с переданным размером строки.
- Возвращается 0, чтобы указать, что программа успешно завершилась.