Из заданной строки символов изъять все буквенные символы, оставшиеся цифры преобразовать в число - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно с заданного ряда символов, изъять все буквенные символы, а цифровые символы что остались превратить в число.

Решение задачи: «Из заданной строки символов изъять все буквенные символы, оставшиеся цифры преобразовать в число»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. int main(){
  6.     setlocale(LC_ALL, "RUSSIAN");
  7.     char *str=(char*)malloc(0), letter;
  8.     int counter=0, i, j;
  9.  
  10.     printf("Введите строку символов: ");
  11.     do{
  12.         letter=getchar();
  13.         counter++;
  14.         str=(char*)realloc(str, counter*sizeof(char));
  15.  
  16.         if(letter!='\n'){
  17.             str[counter-1]=letter;
  18.         }else{
  19.             str[counter-1]='\0';
  20.         }
  21.     }while(letter!='\n');
  22.  
  23.     i=0;
  24.  
  25.     while(i<counter){
  26.         if(((str[i]>64) && (str[i]<91)) || ((str[i]>96) && (str[i]<123))){
  27.             for(j=i+1; j<counter; j++){
  28.                 str[j-1]=str[j];
  29.             }
  30.             counter--;
  31.             str=(char*)realloc(str, counter*sizeof(char));
  32.         }else{
  33.             i++;
  34.         }
  35.     }
  36.  
  37.     printf("%i", atoi(str));
  38.  
  39.     free(str);
  40.  
  41.     return 0;
  42. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с C
  2. Устанавливаем локаль на русский язык для корректного вывода символов
  3. Объявляем переменные: — str - указатель на строку символов, сначала указываем на память 0 байт — letter - символ, который считываем с помощью getchar() — counter - счетчик количества считанных символов — i, j - индексы для работы со строкой str
  4. Запрашиваем у пользователя ввод строки символов
  5. В цикле do-while считываем каждый символ, увеличивая счетчик и выделяя память под строку str
  6. Если считанный символ не является символом новой строки '\n', то добавляем его в строку str
  7. Если считанный символ является символом новой строки, то заменяем последний символ в строке str на символ окончания строки '\0'
  8. После окончания ввода строки символов выводим количество символов в строке
  9. В цикле while проходим по каждому симво в строке str
  10. Если символ является буквенным символом (в верхнем или нижнем регистре), то перемещаем все последующие символы в строке на одну позицию вперед
  11. Если символ не является буквенным символом, то увеличиваем индекс на 1
  12. После окончания цикла while выводим преобразованную строку в числовое значение с помощью функции atoi()
  13. Освобождаем память, выделенную под строку str
  14. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы