С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 21
1

Проверить, содержит ли строка подстроки .exe, .bat, .com

19.04.2015, 17:48. Показов 908. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: Проверить, содержит ли строка подстроки .exe, .bat, .com. Если да, то заменить их тест на ****, а в начале строки добавить текст (Changed).
Проблема в том, что любой введённый текст заменяется на ****, помогите пожалуйста

C
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#define MAX_SYMB 256
#define MAX_STR 100
 
/**
* Выделение из строки подстрок, разделённых запятыми
*
* @str_1 исходная введённая строка
* @str_2 обработанная строка
* @count счётчик длины введённой строки
*/ 
void strprc(char str_1[][MAX_SYMB], char str_2[][MAX_SYMB], int count);
 
int main()
{
setlocale (0, "rus");
printf ("Введите строку:\n");
char str_1[MAX_STR][MAX_SYMB] = { "" };
char str_2[MAX_STR][MAX_SYMB] = { "" };
int count_str;
for (count_str = 0; strcmp(str_1[count_str - 1], "end"); count_str++)
gets(str_1[count_str]);
 
if (count_str == 1)/* Проверка ввода строки на ОДЗ*/{
printf ("Вы не ввели ни одной строки\n");
return 0;
}
 
strprc(str_1, str_2, count_str);
for(int i = 0; i < count_str - 1; i++)
 
if(strlen(str_1[i]) > 20)/* Проверка длины строки на ОДЗ*/
{
printf("Слишком большая строка. Не сместится в Таблицу\n");
return 0;
}
printf ("Результат:\n");
 
printf ("+---------------------+-------------------------+\n\
| Исходная строка | Обработанная строка |\n\
+---------------------+-------------------------+\n"); /* Вывод в виде таблицы*/
for(int i = 0; i < count_str - 1; i++)
{
 
printf("| %s", str_1[i]);
for (int j = 0; j < 20- strlen(str_1[i]);j++)
printf (" ");
 
printf("| %s", str_2[i]);
for (int j = 0; j < 24- strlen(str_2[i]);j++)
printf (" ");
printf ("|");
printf ("\n+---------------------+-------------------------+\n");
}
return 0;
}
 
/**
* Выделение из строки нужных подстрок
*/
void strprc(char str_1[][MAX_SYMB], char str_2[][MAX_SYMB], int count)
{
 
for (int k = 0; k < count - 1; k++)
{
strcat(str_2[k], "Changed: ");
for (int i = 0, j = 7; str_1[k][i] != '\0'; i++, j++)
{
if(str_1[k][i] == '.exe', '.com','.bat')
str_2[k][j] = '****';
else
str_2[k][j] = str_1[k][i];
}
}
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2015, 17:48
Ответы с готовыми решениями:

Exe.rehcnual.bat, exe.erolpxei.bat, exe.emorhc.bat итд
добрый день! в конце мая поймала заразу, которая поставила мне кучу хлама от мыла, браузер амиго и...

Exe.rehcnual.bat, exe.erolpxei.bat, exe.emorhc.bat
Здравствуйте. Буквально 2 дня назад случилось: скачал и запустил неизвестный мне exe файл(корю себя...

Неправильно работает EXE-файл, скомпилированный из BAT-файла с помощью программы Bat To Exe Converter
Сдрасте люди, я пришел к вам с того самого мира, или как то так У меня уже мозги кипят на...

Проверить содержит ли строка подстроку
Каким образом проверить что в строке содержится подстрока, если строка содержит в себе несколько...

1
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
19.04.2015, 18:37 2
Цитата Сообщение от D_Timmo Посмотреть сообщение
C
1
2
3
4
if(str_1[k][i] == '.exe', '.com','.bat') /* (2) (1) */
str_2[k][j] = '****'; /* (3) (1) */
else
str_2[k][j] = str_1[k][i]; /* (3) */
(1) .exe и пр. = это не 1 символ, а строка. соответственно писать надо ".exe" (с остальными так же).
(2) дальше. строки так не сравниваются. используйте str(n)cmp.
(3) строки так не копируются/не объединяются. используйте str(n)cpy/str(n)cat
1
19.04.2015, 18:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2015, 18:37
Помогаю со студенческими работами здесь

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

Проверить содержит ли строка служебные символы
Хотелось бы сократить код на более короткий и впихнуть в него метод Char.IsControl(char), чтобы...

Проверить, содержит ли строка определенное слово
как определить содержит ли строка определенное слово. например есть строка &quot;ПРивет как дела?&quot; надо...

Проверить содержит ли строка заданные символы
Всем привет! Немного странный вопрос. Нужно проверить, содержит ли строка следующие символы:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru