Ввод строки до определенного символа - C (СИ)

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

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

Здравствуйте. Суть задачи: вводится текст, ввод должен осуществляться до определенного символа (например до буквы "а"). При вводе этого символа ("а") программа сохраняет весь текст, введенный до него, в строку (массив char), и ввод прекращается. Подскажите, пожалуйста, как можно реализовать это? Мне в голову приходит только посимвольный ввод с проверкой каждого символа, но тогда после каждой буквы придется нажимать Enter, что очень не удобно. Заранее спасибо.

Решение задачи: «Ввод строки до определенного символа»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define SIZE 1000
 
 
int main ( void )
{
    
    char sequenceArray[SIZE] = "";
    signed char currentLetter = 0;
    unsigned char counter;
 
    
 
    puts( "Enter your sequence:" );
    fflush( stdout );
 
    for ( counter = 0; ( currentLetter = getchar()) != 'a' && currentLetter != 'A' // перенос 
        && counter < SIZE; ++counter ) {
        
        sequenceArray[counter] = currentLetter;
    }
 
    puts("");
    puts( "Your sequence is: ");
 
    for ( counter = 0; sequenceArray [counter] != 0; ++counter ) {
        printf( "%c", sequenceArray[counter] );
    }
 
    puts("");
    return ( EXIT_SUCCESS );
}

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

В этом коде:

  1. Объявлены три переменные: sequenceArray, currentLetter и counter.
  2. Переменная sequenceArray инициализируется пустой строкой.
  3. В цикле for, который продолжается до тех пор, пока пользователь не введет символ 'a' или 'A', текущий символ добавляется в массив sequenceArray.
  4. После окончания цикла выводится пустая строка.
  5. Затем выводится сообщение Your sequence is: и в цикле for выводятся все символы, добавленные в массив sequenceArray.
  6. Программа завершается успешно.

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


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

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

7   голосов , оценка 4.143 из 5
Похожие ответы