Перейти к содержимому

Как удалить слово из строки c

  • автор:

Удалить слово из строки

С клавиатуры ввести символьную строку. Проверить, совпадает второе слово этой строки с его последним словом. Если да, то исключить из строки второе слово, сдвинув все последующие слова слева. Напечатать соответствующее сообщение, а в случае изъятия дополнительно вывести сокращенный строку.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Указатели, символьные строки и функции: удалить из строки слово с заданным номером
Функция удаляет из строки слово с заданным номером: не знаю как делать, сделал через swich case но.

Удалить слово из строки
Подскажите как вообще в принципе удалить слово из строки. Например мне нужно удалить последнее.

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

Удалить слово из строки
Доброго времени суток ! Помогите пожалуйста, желательно в С++ Задание. Разработать функцию.

Регистрация: 01.10.2014
Сообщений: 97
Никто не знает?
7595 / 6418 / 2924
Регистрация: 14.04.2014
Сообщений: 27,939
Знают. Ты бы хоть ввод-вывод сделал сам.
Регистрация: 01.10.2014
Сообщений: 97

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include #include using namespace std; int main () { char string[100]; size_t c = 0, i; cout  "Enter a string : "; cin.getline(string,100); string[i] = '\0'; cout  "\nNew string : "  string  endl; system("pause"); }

Добавлено через 9 часов 59 минут
ввод-вывод сделал, што дальше?
7595 / 6418 / 2924
Регистрация: 14.04.2014
Сообщений: 27,939

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
#include #include #include using namespace std; int main() { char str[100], *w, *nn[100]; unsigned char count = 0; cout  "Enter a string : "; cin.getline(str, 100); w = strtok(str, " "); while (w != NULL) { nn[count++] = w; w = strtok(NULL, " "); } nn[count] = nn[count - 1] + strlen(nn[count - 1]); if (count > 2) { if (strcmp(nn[1], nn[count - 1]) == 0) { cout  "Second word = last word."  endl; char *i, *j; for (i = nn[2], j = nn[1]; i  nn[count]; ++i, ++j) { *j = *i; if (*j == '\0') *j = ' '; } *(j - 1) = '\0'; *(str + strlen(str)) = ' '; cout  str  endl; } else cout  "Second word != last word."  endl; } system("pause"); return 0; }

Как удалить слово из строки c

WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
<
string Text = » курилы питер тверская морская бумажная гавеная ceшняк виски дура «;

if((Text[i+2] == ‘ ‘) || (Text[i+2] == ‘\0’))
<
int j = ++i;
//это конец слова
do
<
Text.erase(Text.begin() + j);
j—;
i—;
>
while((Text[j] != ‘ ‘));
Text.erase(Text.begin() + j);
>

первое что пришло в голову.
А можно задачу более конкретно обрисовать? из любой строки, с любыми символами?

Бог сделал людей разными, а генерал Кольт уравнял шансы
Последний раз редактировалось studenth; 11.09.2007 в 10:58 .
Форумчанин
Регистрация: 10.09.2007
Сообщений: 105

честное слово запарился править
вечно спешу куда — то да и кофе в институте кончился. в автомате
в этом примере строка должна быть содержать один пробел впереди. издержки моего дурного метода

Бог сделал людей разными, а генерал Кольт уравнял шансы
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
я бы нашел слово по пробелам, а потом проверял его окончание . но суть та-же
Берегите друг друга!
Пользователь
Регистрация: 24.08.2007
Сообщений: 37
Мне бы просто цикл нужен , так то прога у меня уже готова, только с удалением запарочка!
Форумчанин
Регистрация: 10.09.2007
Сообщений: 105
Сообщение от Ellita
Мне бы просто цикл нужен , так то прога у меня уже готова, только с удалением запарочка!

Еще, помимо примера, можешь почитать про функцию strtok.
Это функция лексимизации строки. тоесть она строку дергает на лексемы, ограниченные параметром.

Бог сделал людей разными, а генерал Кольт уравнял шансы
Пользователь
Регистрация: 18.09.2007
Сообщений: 13
Удаление слова, оканчивающегося на «an»

Протестировал, прогграмма работает, где бы не находилось слово, в конце, в середине или в начале предложения. Слово оканчивающееся на «an» удаляется.

Но удаляется только одно первопапавшееся слово, оканчивающееся на «an».

Вот, посмотри, может появятся какие нибудь соображения.

‘\0’ означает конец строки

32 десятеричный код пробела

Пользователь
Регистрация: 18.09.2007
Сообщений: 13
Листинг программы удаления слова

#include void main() < char str[]="history of American peaple ";// строка int i,k; i=k=0; // 1. ищем слово на "an" (ставим индекс i на символ 'a') for(; i!=sizeof(str); i++)< if(str[i]=='a' && str[i+1]=='n')< break; >> // 2.поиск начала слова, оканчивающегося на "an" // k это индекс начала слова if(str[i]=='a') < for(;str[i]!=32 && i!=-1; i--); k = i+1; // 3. поиск следующего слова и конца строки for(i++;str[i]!='\0' && str[i]!=32;i++); //cout>str[k]='\0'; cout >

Последний раз редактировалось rpy3uH; 21.04.2009 в 10:26 .

Удаление слов из строки

С клавиатуры ввести предложения. Вытереть с него слово, порядковый номер которого задает пользователь. Если номер слова превышает реальное количество слов в предложении, то вывести соответствующее сообщение.

Помогите дописать код. Вот начал писать и не знаю что дальше.
Заранее спасибо.

1 2 3 4 5 6 7 8 9 10 11
#include int i, j, m; char p[]={"C - universal language programming general appointment, developed in 1972 year by Denis Ritchie \0"}; int main() { printf("%s",p); printf("\nEnter the word number: "); scanf("%d", &m); if(p[i]==m){ p[i]=p[i]  1; } printf("%s",p[i]);

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Удаление слов из строки.
Необходимо реализовать на языке Си функцию удаление нечетных слов из строки. void.

Выполнить удаление из строки слов, содержащих только малые латинские буквы
не магу понять почему номера оставленных слов выводится правильно а в строку s2 не записывается.

Как отсортировать строки по кол-ву слов и слова в строке по длине слов
Суть задания:Вводить последовательность не более чем 256 символов,ввод заканчивается.

Строки. Удаление слов
1)Даны два слова(1 строка) . Из первого слова удалить все буквы, которые встречаются во втором.

Регистрация: 10.12.2017
Сообщений: 178

Добавлено через 20 часов 1 минуту
Вот переписал код. Но есть одна проблема удаляется только символ, а надо целое слово

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include int k, n, nc; int main() { char st[] = {"C is a universal programming language, developed in 1972 by Denis Ritchie"}; printf("Vvedit nomer chisla: "); scanf("%d", &k); if(st[n] != ' '){ while(st[n] != '\0') { if (st[n] == k){ n++; } else{ st[n] = st[k]; n++; k++; } } } st[k] = '\0'; printf("%c: %s\n", k, st); return 0; }

Регистрация: 10.12.2017
Сообщений: 178

Помогите исправить код. Задача: С клавиатуры ввести предложения. Вытереть с него слово, порядковый номер которого задает пользователь.
Сама программа компилируется без ошибок, а на экран выводиться только буква С.
Помогите исправить код.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include #include char a[5][15] = {"C", "is", "a", "universal", "programming"}; char b[4][15]; int i, j, k, m; int main(){ printf("\nVvedit chislo: "); scanf("%d", &m); for(i=0; i5; i++){ if (i != m) { a[i][j]=b[i][j]; } } printf("%s",b); }

Удалить слово из строки

Никак не получается задание. q-строка q2-заданное слово Изначально пробовала с функцией strstok, но потом до меня дошло, что я не смогу сравнить тогда e(результат strtok) с заданным словом, так как e возвращает указатель на символ пробела. Помогите, пожалуйста)

void task_5(char q[], char q2[]) < int i,num; char* e; char p[50]; //e = strtok(q, " "); //while (e != NULL) < for (i = 0; i < strlen(q); i++) < if (q[i] == ' ') < num = i; >> for (i = 0; i < num; i++) < p[i] = q[i]; >if (strcmp(p, q2) == 0) < for (i = 0; i < strlen(q2); i++) < q[i] = '\0'; >> puts(q); //e = strtok(NULL, " ");> > 

Отслеживать

задан 22 дек 2020 в 15:26

annie_grey annie_grey

71 5 5 бронзовых знаков

А так нельзя? char * s = strstr(q,q2); if (s) memmove(s,s+strlen(q2),strlen(s+strlen(q2))+1); Или q2 должно быть истинным, так сказать, словом, окруженным пробелами?

22 дек 2020 в 15:32

не работает так, не удаляет часть слова

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *