Как очистить строку в C++?
Как очистить строку, чтобы в ней вообще ничего не было, как при создании?
- Вопрос задан более трёх лет назад
- 33717 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 5
Ищу работу. Контакты в профиле.
Ответ написан более трёх лет назад
Нравится 5 2 комментария
Nik_Haker @Nik_Haker Автор вопроса
без iostream можно?
1. Можно
2. А зачем?
3. А попробовать?
Сверхразум
Ответ написан более трёх лет назад
Зачем советовать что бы то ни было СМОТРЕТЬ?
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Константин @baraboshinkg
Программист С/С++
Если C строка то:
str[0] = 0;
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
int len = LEN_SIZE; char *txt; txt = malloc(sizeof(*txt)*len); for(int a = 0 ; a
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- C++
- +2 ещё
Какие есть методы сборки кода на игровых движках? Какой лучше для примитивного 2d вроде vn генератора?
- 2 подписчика
- 3 часа назад
- 48 просмотров
- C++
Как оформить правильно выполнение?
- 1 подписчик
- вчера
- 46 просмотров
- C++
Почему не подсчитывается количество книг с тремя о в название?
- 1 подписчик
- 27 нояб.
- 74 просмотра
- C++
Как создать exe файл с интерпретатором angel script?
- 1 подписчик
- 26 нояб.
- 65 просмотров
- C++
Как правильно округлять числа с плавающей точкой с заданной точностью?
- 1 подписчик
- 25 нояб.
- 90 просмотров
- C++
Как оформить некорректный ввод значений в наследниках?
- 1 подписчик
- 24 нояб.
- 56 просмотров
- C++
- +2 ещё
В чем проблема в коде работы с графом?
- 1 подписчик
- 24 нояб.
- 91 просмотр
- C++
- +1 ещё
Компиляция C++ кода на Ubuntu и Windows даёт мне разный результат, почему?
- 1 подписчик
- 24 нояб.
- 164 просмотра
- JavaScript
- +2 ещё
Как перевести тип данных с С++ на JS?
- 1 подписчик
- 24 нояб.
- 129 просмотров
- C++
- +1 ещё
Как найти точки пересечения двух многоугольников?
- 1 подписчик
- 23 нояб.
- 84 просмотра
Элеста • Санкт-Петербург
от 130 000 до 200 000 ₽
от 300 000 ₽
от 3 000 до 6 000 $
29 нояб. 2023, в 21:44
1500 руб./в час
29 нояб. 2023, в 20:26
1000 руб./в час
29 нояб. 2023, в 20:22
600000 руб./за проект
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
- Где взять шаблон Zabbix?
- 2 подписчика
- 1 ответ
- 3 подписчика
- 0 ответов
- 3 подписчика
- 3 ответа
- 2 подписчика
- 0 ответов
- 2 подписчика
- 0 ответов
- 2 подписчика
- 0 ответов
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ
- 2 подписчика
- 0 ответов
- 2 подписчика
- 6 ответов
Как очистить указатель на char в Си?
У меня есть функция, funcrion(FILE *in, char *result) пишушая некую последовательность символов в строку result. Однако, чтобы каждый раз записывать новую последовательность, необходимо внутри функции очистить строку result перед тем, как писать в неё что-либо, дабы не появлялись лишние символы (например, при первом вызове было записано «123456», а при втором нужно записать «abc». Если не очищать, получается второй раз «abc456»).
Как это сделать, подскажите, пожалуйста!
Удаление символов из строки
K&R (61-62). Приводится пример функции squeeze , которая удаляет все символы c из строки s .
Ниже представлен полный код программы с использованием этой функции. А также ответ к упражнению 2.4, где предлагается написать функцию, удаляющую из строки s1 все символы, встречающиеся в строке s2 .
Алгоритм удаления символа из строки можно описать так:
- Пока не будет достигнут конец строки,
- если очередной символ строки не равен символу для удаления,
- записать очередной символ по месту индекса j , после этого последний увеличить на единицу.
Другими словами, алгоритм сводится к тому, что символ по индексу i затирается следующим символом, если он совпал с символом для удаления; т.к запись идет по счетчику j , а он увеличивается лишь тогда, когда символы из строки и для удаления не совпадают.
Алгоритм удаления тех символов строки, которые встречаются в другой строке, отличается от предыдущего тем, что нужно по очереди извлекать символы из второй строки и удалять их из первой. Т.е. приведенный выше алгоритм следует вложить в цикл перебора символов второй строки.
Удаление всех символов c из строки
#include #define MAX 100 void squeeze (char s[], int c); main () char str0[MAX]; int i, c; for (i = 0; (c = getchar()) != '\n'; i++) str0[i] = c; str0[i] = '\0'; c = getchar(); squeeze (str0, c); printf("%s\n", str0); > void squeeze (char s[], int c) int i, j; for (i = j = 0; s[i] != '\0'; i++) if (s[i] != c) s[j++] = s[i]; s[j] = '\0'; >
Удаление всех символов, встречающихся в строке s2 , из строки s1
#include #define MAX 100 #define DEL 10 void squeeze (char s[], char s1[]); void written (char s[]); main() char str[MAX]; char str1[DEL]; written (str); written (str1); squeeze (str, str1); printf("%s\n", str); > void written (char s[100]) int i, c; i = 0; while ((c = getchar()) != '\n') s[i] = c; ++i; > s[i] = '\0'; > void squeeze (char s[], char s2[]) int k, i, j; for (k = 0; s2[k] != '\0'; k++) for (i = j = 0; s[i] != '\0'; i++) if (s[i] != s2[k]) s[j++] = s[i]; s[j] = '\0'; > >
Примечание. Во второй программе запись символов в строку выделена в отдельную функцию, т.к. надо записать две строки. Иначе пришлось бы дублировать код.
X Скрыть Наверх
Решение задач на языке C
Удалить все буквы из строки
День добрый, подскажите, пожалуйста. Нужно реализовать вот такую вещь:
Ввести строку символов, если ее длина >5, удалить все буквы – a..z.Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:Удалить из строки все гласные буквы
#include <stdio.h> #include <conio.h> #include <iostream> #include <string.h> void main() < .Удалить из строки все буквы, равные последней букве предложения
надо что бы он прочитав последнею букву в предложение удалял все такие же буквы в самом предложение.6044 / 2159 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
Можно так вот например: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 44 45
int RemoveLetters(char* const str) { int errorCode = 0; int i = 0; int j = 0; int N = 0; char* tempStr = NULL; if (str == NULL) { errorCode = -1; } else { N = strlen(str) + 1; if (N > 5) { tempStr = malloc(N * sizeof(*tempStr)); if (tempStr == NULL) { errorCode = -1; } else memset(tempStr, 0, N * sizeof(*tempStr)); j = 0; for(i = 0; i N - 1; i++) { if ((str[i] 'a') } if (j > 0) { strcpy(str, tempStr); } } free(tempStr); tempStr = NULL; } } return errorCode; }
12238 / 7405 / 1736
Регистрация: 25.07.2009
Сообщений: 13,586Сообщение было отмечено бутафор как решение
Решение
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
#include #include #include char * remove_if(char * str, int (*func)(int)) { char * s = str; while ( *s ) { if ( func(*s) ) memmove(s, s + 1, strlen(s)); else ++s; } return str; } int main(void) { char buf[BUFSIZ]; while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) printf("Result: %s", ( strlen(buf) > 5 + 1 /* '\n' at the end of string */ ) ? remove_if(buf, isalpha) : buf); return 0; }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесьУпорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A
Даны строки A и B. Если в A есть повторяющиеся символы, а в B нет повторяющихся символов, то.Файлы. Переписать все строки в новый файл, заменив все буквы ‘м’ на ‘М’
Помогите написать программу. Язык С. Файлы. Задание: Переписать все строки в новый файл, заменив.Удалить латинские буквы из строки
вот задание. строки A и B. Если в A есть повторяющиеся символы, а в B нет повторяющихся символов.Удалить из слова все согласные буквы
Найти функцию которая получает слово на английском языке, удаляет из него все согласные буквы и.Или воспользуйтесь поиском по форуму: