Из заданной строки удалить первое слово, если строка содержит заданное количество слов - C (СИ)
Формулировка задачи:
Из заданной строки удалить первое слово, если строка содержит заданное количество слов. Для хранения исходной строки и обработанной строки использовать динамическую память.
Все, что удалось из себя выдавить. Понятия не имею, как воспользоваться динамической памятью
#include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char str[33], str1[33]; int i = 0, schetchik_slov = 0, schetchik_simvolov = 0, n = 0, a = 0, sl = 0, simv = 0, dlina_1_sl = 0, probeli = 0; gets(str); puts(str); printf("N: "); scanf("%d", &n); while ((str[i] == ' ') && (str[i] != '\0')) //пропуск пробелов в начале текста i++; probeli = i; while (str[i] != '\0') //счетчик слов { if (str[i] != ' ' && sl == 0) { sl = 1; schetchik_slov++; } else if (str[i] == ' ') sl = 0; i++; } schetchik_simvolov = i; i = probeli; sl = 0; while ((str[i] != ' ') && (sl = 1)) //счетчик длины первого слова { if (str[i] != ' ') { dlina_1_sl++; } else if (str[i] == ' ') sl = 1; i++; } i = 0; if (schetchik_slov == n) { while (str[i] != '\0') { str1[i] = str[i+ probeli + dlina_1_sl]; i++; } puts(str1); } printf("%d, %d\n", schetchik_simvolov, dlina_1_sl); system("pause"); return(0); }
Решение задачи: «Из заданной строки удалить первое слово, если строка содержит заданное количество слов»
textual
Листинг программы
char *pmem; gets(buf); pmem=(char*)malloc(strlen(buf)+1); if(pmem==NULL) { puts("Отсутствует свободная память"); } else strcpy(pmem,buf);
Объяснение кода листинга программы
- Объявлена переменная
pmem
типаchar*
(строка символов). - С помощью функции
gets()
вводится строка в переменнуюbuf
. - Выделена память под строку с помощью функции
malloc()
, в которую будет копироваться строка без первого слова. - Если память не выделена (т.е.
pmem
равноNULL
), выводится сообщение об отсутствии свободной памяти. - Если память выделена, то в нее копируется строка без первого слова с помощью функции
strcpy()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д