Получить две строки, одну из букв, другую из цифр заданной строки - C (СИ)
Формулировка задачи:
Дана строка, содержащая латинские буквы и десятичные цифры. Получить две строки, одну из букв, другую из цифр данной строки, сохранив относительный порядок символов. Например, из строки “qwer4672ty01” получим “qwerty” и “467201”.
Решение задачи: «Получить две строки, одну из букв, другую из цифр заданной строки»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main()
{
char s[] = "qwer4672ty01", let[30], dig[30];
int j = 0, k =0;
for(int i = 0; s[i]; ++i){
if(s[i] >= '0' && s[i] <= '9'){
dig[j] = s[i];
++j;
}
else{
let[k] = s[i];
++k;
}
}
dig[j] = '\0';
let[k] = '\0';
puts(dig);
puts(let);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и для работы с основами языка C
- Объявление основной функции программы, в которой будет выполняться весь код
- Объявление двух строк: s[], let[] и dig[]
- Объявление двух переменных: j = 0 и k = 0, которые будут использоваться в цикле
- Написание цикла for, который будет проходить по каждому символу строки s[]
- Внутри цикла проверка, является ли текущий символ цифрой
- Если символ является цифрой, то он добавляется в строку dig[], а значение переменной j увеличивается на 1
- Если символ не является цифрой, то он добавляется в строку let[], а значение переменной k увеличивается на 1
- После окончания цикла, в строку dig[] добавляется символ '\0', чтобы обозначить конец строки
- В строку let[] добавляется символ '\0', чтобы обозначить конец строки
- Вывод на экран строки dig[]
- Вывод на экран строки let[]
- Возвращение значения 0, что означает успешное выполнение программы