Как очистить строку c
🙂 Привет! Глупый и простой вопрос возник. Как мне очистить массив типа char?
Я делал так:
char Massiv[100];
strcpy(Massiv, «»);
Но так не удобно, да и сам метод примитивен для очистки. Подскажите, как очищать легко и быстро?
И ещё! Не хчу тему создовать. Кто знает, где можно скачать видеоклип Глюк`oza и песня Невеста. Желательно чтоб размер экрана былы ХОРОШИМ и весь файл НЕ занимал менее 5 Мб. Лучше пусть он занимает мегобайт 20, я его скачать хочу. 8)
Сообщ. #2 , 27.05.03, 14:55
Рейтинг (т): 640
Цитата Владислав, 27.05.03, 18:46:23
Привет! Глупый и простой вопрос возник. Как мне очистить массив типа char?
Я делал так:
char Massiv[100];
strcpy(Massiv, «»);
Но так не удобно, да и сам метод примитивен для очистки. Подскажите, как очищать легко и быстро?
Не совсем понятен вопрос. Нужно обнулить весь массив или сделать строку нулевой длины?
Если первое — то:
memset
FillMemory
ZeroMemory
Если второе — то:
Massiv[0]=0;
Сообщ. #3 , 27.05.03, 15:12
Unregistered
Цитата trainer, 27.05.03, 18:55:26
Не совсем понятен вопрос. Нужно обнулить весь массив или сделать строку нулевой длины?
Если первое — то:
memset
FillMemory
ZeroMemory
Если второе — то:
Massiv[0]=0;
Спасибо! Надо только обнулить весь массив. Приведи примерчик. Я думаю это тебе не составит труда.
ЛЮДИ. ДРУГОЙ ВОПРОС.
Я создал свой КАДР, т.е. Frame1 объект. Как мне его сохранить так, чтоб я его мог многократно загружать из вкладки с компонентами. Саму вкладку я знаю как создавать. Но как туда положить мой Frame для многократного использования?
Как очистить строку c
Простите за примитивный вопрос, но как очитить перменную типа char ?
Пробовал по-разному извращаться, но не получается
Re: Очистить переменную char
| От: | Анатолий Широков | |
| Дата: | 19.08.04 12:18 | |
| Оценка: | 3 (1) +1 | |
Здравствуйте, trustno1, Вы писали:
T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается
А можно посмотреть вариаты?
Re: Очистить переменную char
| От: | Glоbus |
| Дата: | 19.08.04 12:18 |
| Оценка: |
Здравствуйте, trustno1, Вы писали:
T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается
А че значит очистить. можно вызвать char() — тогда туда будет записано некоторое дефолтное «нулевое» значение.
Удачи тебе, браток!
Re: Очистить переменную char
| От: | ChipSet2k | http://merlinko.com |
| Дата: | 19.08.04 12:19 | |
| Оценка: |
Здравствуйте, trustno1, Вы писали:
T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается
char с = ‘\0’;
«Всё что не убивает нас, делает нас сильнее. »
Re: Очистить переменную char
| От: | _nn_ | www.nemerleweb.com |
| Дата: | 19.08.04 12:23 | |
| Оценка: |
Здравствуйте, trustno1, Вы писали:
T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается
А что означает очистить ?
Re[2]: Очистить переменную char
| От: | trustno1 |
| Дата: | 19.08.04 12:33 |
| Оценка: |
Здравствуйте, Анатолий Широков, Вы писали:
АШ>Здравствуйте, trustno1, Вы писали:
T>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>Пробовал по-разному извращаться, но не получается
АШ>А можно посмотреть вариаты?
1. varb = ‘\0’;
2. memset(varb,0,sizeof(varb));
3. varb = «»;
Re[2]: Очистить переменную char
| От: | trustno1 |
| Дата: | 19.08.04 12:35 |
| Оценка: |
Здравствуйте, Glоbus, Вы писали:
G>Здравствуйте, trustno1, Вы писали:
T>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>Пробовал по-разному извращаться, но не получается
G>А че значит очистить. можно вызвать char() — тогда туда будет записано некоторое дефолтное «нулевое» значение.
не выходит, пишет, что не может переконвертить чар[1] в чар[100]
Re[3]: Очистить переменную char
| От: | _nn_ | www.nemerleweb.com |
| Дата: | 19.08.04 12:35 | |
| Оценка: |
Здравствуйте, trustno1, Вы писали:
T>Здравствуйте, Анатолий Широков, Вы писали:
АШ>>Здравствуйте, trustno1, Вы писали:
T>>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>>Пробовал по-разному извращаться, но не получается
АШ>>А можно посмотреть вариаты?
T>char[100] varb;
T>1. varb = ‘\0’;
T>2. memset(varb,0,sizeof(varb));
T>3. varb = «»;
char varb[100]=""; // или char varb[100]; strcpy(varb,""); // или char varb[100]; varb[0]=0;
P.S.
Вам стоит прочитать про массивы и строки в С.
Re: Очистить переменную char
| От: | BArt |
| Дата: | 19.08.04 12:36 |
| Оценка: |
Здравствуйте, trustno1, Вы писали:
T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается
Предлагаю совершить над ней заклинание exorcism, для этого нужно сказать пару матерных слов в ее адрес, потом можно считать ее чистой. А в коде писать ничего не нужно.
P.S. Извините за юмор.
Re[2]: Очистить переменную char
| От: | _nn_ | www.nemerleweb.com |
| Дата: | 19.08.04 12:37 | |
| Оценка: |
Здравствуйте, BArt, Вы писали:
BA>Здравствуйте, trustno1, Вы писали:
T>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>Пробовал по-разному извращаться, но не получается
BA>Предлагаю совершить над ней заклинание exorcism, для этого нужно сказать пару матерных слов в ее адрес,
Вроде этого
Автор:
Дата: 02.06.04
?
BA>потом можно считать ее чистой. А в коде писать ничего не нужно.
BA>P.S. Извините за юмор.
Re: Очистить переменную char
| От: | Apapa |
| Дата: | 19.08.04 12:38 |
| Оценка: |
Здравствуйте, trustno1, Вы писали:
T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается
Переменная типа char — это число размеров в один байт.
Т.к. это просто число, то оно ОБЯЗАНО принимать какое-то значение либо от 0 до 255 (если по-умолчанию char беззнаковый), либо от -128 до 128 (если знаковый).
«Очистить переменную char» само по себе лишино смысла.
Другое дело, если это некоторая необходимость в программе. Т.е. требуется, чтобы в определенной ситуации данная переменная была «помечена» как чистая.
В этом случае можно поступить двояко. Либо выделить специальное значение, которое будет обозначять очищенную переменную (например, 0x80 == -128 для знакового char), либо дополнить char до большего типа или до структуры, где кроме самого значения хранить еще признак того, инициализирована переменная или нет (может Вы, например, так ошибки ищете).
В любом случае, следует пояснить для чего Вам это нужно.
Здесь могла бы быть Ваша реклама!
Re[3]: Очистить переменную char
| От: | Chez |
| Дата: | 19.08.04 12:40 |
| Оценка: |
Здравствуйте, trustno1, Вы писали:
T>Здравствуйте, Анатолий Широков, Вы писали:
АШ>>Здравствуйте, trustno1, Вы писали:
T>>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>>Пробовал по-разному извращаться, но не получается
АШ>>А можно посмотреть вариаты?
T>char[100] varb;
T>1. varb = ‘\0’;
T>2. memset(varb,0,sizeof(varb));
T>3. varb = «»;
4. VariantClear()
А если серьезно
varb[0]='\0'; // только строчку char[100] varb; // надо заменить на char varb[100];
Chez, ICQ# 161095094
Re[4]: Очистить переменную char
| От: | Chez |
| Дата: | 19.08.04 12:43 |
| Оценка: |
Здравствуйте, _nn_, Вы писали:
Плохо думать, еще хуже думать что ты думаешь , но самое хучшее когда кто-то думает что ты думаешь.
Хуже всего думать о чём же ты думаешь.
Chez, ICQ# 161095094
Re[4]: Очистить переменную char
| От: | trustno1 |
| Дата: | 19.08.04 12:46 |
| Оценка: |
Здравствуйте, _nn_, Вы писали:
__>Здравствуйте, trustno1, Вы писали:
T>>Здравствуйте, Анатолий Широков, Вы писали:
АШ>>>Здравствуйте, trustno1, Вы писали:
T>>>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>>>Пробовал по-разному извращаться, но не получается
АШ>>>А можно посмотреть вариаты?
T>>char[100] varb;
T>>1. varb = ‘\0’;
T>>2. memset(varb,0,sizeof(varb));
T>>3. varb = «»;
__>А вот так :
__>
__>char varb[100]=""; __>// или __>char varb[100]; __>strcpy(varb,""); __>// или __>char varb[100]; __>varb[0]=0; __>
__>P.S.
__>Вам стоит прочитать про массивы и строки в С.
спасибо, разобрался
да, читать надо
Re[5]: Очистить переменную char
| От: | _nn_ | www.nemerleweb.com |
| Дата: | 19.08.04 12:58 | |
| Оценка: |
Здравствуйте, Chez, Вы писали:
C>Здравствуйте, _nn_, Вы писали:
C>
C>Плохо думать, еще хуже думать что ты думаешь , но самое хучшее когда кто-то думает что ты думаешь.
C>Хуже всего думать о чём же ты думаешь.
Я вас не понял
То что я написал как раз и нужно было.
В чем выражается ваша притензия ?
Re[6]: Очистить переменную char
| От: | Chez |
| Дата: | 19.08.04 13:07 |
| Оценка: |
Здравствуйте, _nn_, Вы писали:
__>Здравствуйте, Chez, Вы писали:
C>>Здравствуйте, _nn_, Вы писали:
C>>
C>>Плохо думать, еще хуже думать что ты думаешь , но самое хучшее когда кто-то думает что ты думаешь.
C>>Хуже всего думать о чём же ты думаешь.
__>Я вас не понял
__>То что я написал как раз и нужно было.
__>В чем выражается ваша притензия ?
Никакой претензии.
Это мой комментарий к Вашему футеру в топиках. Очень он мне понравился.
P.s. Если вы восприняли на свой счёт, то я даже не пробовал думать, о чём же ты думаешь, поэтому не знаю, плохо это, или хорошо.
Chez, ICQ# 161095094
Re[7]: Очистить переменную char
| От: | _nn_ | www.nemerleweb.com |
| Дата: | 19.08.04 13:12 | |
| Оценка: |
Здравствуйте, Chez, Вы писали:
C>Здравствуйте, _nn_, Вы писали:
__>>Здравствуйте, Chez, Вы писали:
C>>>Здравствуйте, _nn_, Вы писали:
C>>>
C>>>Плохо думать, еще хуже думать что ты думаешь , но самое хучшее когда кто-то думает что ты думаешь.
C>>>Хуже всего думать о чём же ты думаешь.
__>>Я вас не понял
__>>То что я написал как раз и нужно было.
__>>В чем выражается ваша притензия ?
C>Никакой претензии.
C>Это мой комментарий к Вашему футеру в топиках. Очень он мне понравился.
Спасибо
C>P.s. Если вы восприняли на свой счёт, то я даже не пробовал думать, о чём же ты думаешь, поэтому не знаю, плохо это, или хорошо.
Ну тогда прошу прощения, я вас не понял правильно
Удалить все буквы из строки
День добрый, подскажите, пожалуйста. Нужно реализовать вот такую вещь:
Ввести строку символов, если ее длина >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 } if (j > 0) { strcpy(str, tempStr); } } free(tempStr); tempStr = NULL; } } return errorCode; }
![]()
![]()
![]()
![]()
12229 / 7396 / 1735
Регистрация: 25.07.2009
Сообщений: 13,569

Сообщение было отмечено бутафор как решение
Решение
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; }
Как очистить строку c
Задано предложение и слово. Удалить из предложения k-ое вхождение слова в него. Если такого вхождения нет, то удалить последнее вхождение.
вот на этом у меня ступор произошел
Screenshot_3.jpg
#define _CRT_SECURE_NO_DEPRECATE #include #include int main(int argc, char *argv[]) < char str1[160], temp[160], str2[160], temp1[160]; printf("Vvedite predlojenie: "); gets(str1); printf("Vvedite slovo: "); gets(str2); char *str3 = strtok(str1, " "); int k = 0, l = 0; printf("Vvedite # vhojdenia: "); scanf("%d", &k); int nom = 0; while (str3) < int t = (strcmp(str3, str2)); if (t == 0) < nom++; l = nom; if (nom == k) str3 = ""; >strcat(temp, str3); strcat(temp, " "); str3 = strtok(NULL, " "); > if (nom != k) < char *str4 = strtok(temp, " "); while (str4) < int t = (strcmp(str4, str2)); if (t == 0) < l = 0; l++; if (l == nom) < str4 = ""; >> strcat(temp1, str4); strcat(temp1, " "); str4 = strtok(NULL, " "); > > printf("Rezultat: "); if (l == k) puts(temp); else puts(temp1); return 0; >
Регистрация: 25.08.2011
Сообщений: 2,841
А чего прям ступор то.
Во первых вот так
str4 = "";
делать низя. Это же указатель на память.
Лучше вот так:
str4 = NULL;
Перед использованием переменные лучше чистить.
memset(str1, 0, 160); memset(temp, 0, 160); memset(str2, 0, 160); memset(temp1, 0, 160);
while (str3) < int t = (strcmp(str3, str2)); if (t == 0) < nom++; l = nom; if (nom == k) < str3 = NULL; > strcat(temp, str3);
Вот так чего то там удаляет:
#define _CRT_SECURE_NO_DEPRECATE #include #include #include #include int main(int argc, char *argv[]) < char str1[160], temp[160], str2[160], temp1[160]; memset(str1, 0, 160); memset(temp, 0, 160); memset(str2, 0, 160); memset(temp1, 0, 160); printf("Vvedite predlojenie: "); gets_s(str1); printf("Vvedite slovo: "); gets_s(str2); char *str3 = strtok(str1, " "); int k = 0, l = 0; printf("Vvedite # vhojdenia: "); scanf("%d", &k); int nom = 0; while (str3) < int t = (strcmp(str3, str2)); if (t == 0) < nom++; l = nom; if (nom == k) < str3[0]=0; >> strcat(temp, str3); strcat(temp, " "); str3 = strtok(NULL, " "); > if (nom != k) < char *str4 = strtok(temp, " "); while (str4) < int t = (strcmp(str4, str2)); if (t == 0) < l = 0; l++; if (l == nom) < str4[0] = 0; >> strcat(temp1, str4); strcat(temp1, " "); str4 = strtok(NULL, " "); > > printf("Rezultat: "); if (l == k) puts(temp); else puts(temp1); getchar(); return 0; >
Skype — wmaster_s E-Mail — WorldMasters@gmail.com
Работаем по 3 критериям — быстро, качественно, недорого. Заказчик выбирает любые два.
Последний раз редактировалось WorldMaster; 02.06.2020 в 09:41 .
| WorldMaster |
| Посмотреть профиль |
| Найти ещё сообщения от WorldMaster |
Регистрация: 16.12.2014
Сообщений: 4
Сообщение от WorldMaster
Вот так чего то там удаляет:
вот теперь работает, спасибо за помощь
memset(str1, 0, 160); memset(temp, 0, 160); memset(str2, 0, 160); memset(temp1, 0, 160);
и вопросик один, а почему лучше их чистить?
Регистрация: 25.08.2011
Сообщений: 2,841
Сообщение от justmuve
вот теперь работает, спасибо за помощь
memset(str1, 0, 160); memset(temp, 0, 160); memset(str2, 0, 160); memset(temp1, 0, 160);
и вопросик один, а почему лучше их чистить?
На эту темы есть старый анекдот:
Буратино в магазине купил 5 яблок.
Затем пошел в другой магазин и купил еще 3 яблока.
Сколько яблок теперь у буратино??
Ответ: Сколько угодно, потому что никто не знает сколько до этого у него было яблок.
В С вам просто выделен кусок памяти. Что в нем может лежать никому никогда не будет известно. И чтобы не получать неожиданных результатов работы для каждой переменной нужна своя инициализация. Правило хорошего тона.
Skype — wmaster_s E-Mail — WorldMasters@gmail.com
Работаем по 3 критериям — быстро, качественно, недорого. Заказчик выбирает любые два.
| WorldMaster |
| Посмотреть профиль |
| Найти ещё сообщения от WorldMaster |
