Помогите пожалуйста с программированием на c! - Компьютерные вопросы
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Помогите пожалуйста с программированием на c!

Регистрация
26 Окт 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
Задача: дана строка (символьный массив) и некоторая буква. Найти и вывести все слова в строке, начинающиеся на эту букву. Мне бы, если не код, то хотя бы идею, как это реализовать.
 
Регистрация
4 Дек 2012
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Начинаем с первого символа, сравниваем с заданной буквой. Если совпадает, идем дальше по строке в поисках пробела, попутно "включаем" переменную i, в которой считаем порядковый номер каждого символа. Как только нашли пробел, строку с первого символа до пробела копируем в новую переменную s.

Дальше считываем символ и если это не пробел, сравниваем с заданной буквой, если равно - идем до пробела. Копируем часть строки с порядкового номера буквы до пробела в s. Повторяем в цикле до конца заданной строки.
 
Регистрация
29 Июл 2013
Сообщения
77
Репутация
-2
Спасибо
0
Монет
0
Попробуй этот, сразу скажу, это ChatGPT, я сам только учусь, и то не на С а на Python
#include <stdio.h>
#include <string.h>

int main() {
char str[100], letter;
int i, j, word_start, word_end;
printf("Enter a string: ");
fgets(str, 100, stdin); // ввод строки с помощью fgets()
printf("Enter the starting letter: ");
scanf("%c", &letter); // ввод буквы с помощью scanf()

for (i = 0; i < strlen(str); i++) {
// определение начала и конца слова
if (i == 0 || str[i-1] == ' ') {
word_start = i;
while (str != ' ' && str != '\n' && str != '\0') {
i++;
}
word_end = i;
// проверка, начинается ли слово на заданную букву
if (str[word_start] == letter) {
// вывод слова на экран
for (j = word_start; j < word_end; j++) {
printf("%c", str[j]);
}
printf("\n"); // переход на новую строку после вывода слова
}
}
}
return 0;
}
 
Регистрация
28 Дек 2013
Сообщения
82
Репутация
-3
Спасибо
0
Монет
0
создай вектор строк
используй isalpha, чтобы знать где граница слова.
создай два цикла.
один встроен в другой
первый цикл идёт по строке символ за символом.
если найдена буква слова, то она добавляется новым словом в вектор.
включается внутренний цикл, идущий до конца этого слова и он добавляет по симвалу в последнее слово вектора.
Когда циклы завершатся, создаёшь новый цикл идущий по вектору.
внутри тоже встроенный цикл, идущий по слову, ищущий нужную букву. как только нашёл, выводи текущее слово в векторе на экран и прерывай внутренний цикл

я написал про си плюс плюс
в си вместо вектора строк нужно использовать двойной массив символов достаточно большого размера
 
Сверху Снизу