Помощь по программирование на языке си (не с++) - Компьютерные вопросы

Вопрос Помощь по программирование на языке си (не с++)

Регистрация
27 Дек 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
Может кто-нибудь пожалуйста создать программу, которая должна удалить часть строки, заключённую в круглые скобки (вместе со скобками)?
 
Регистрация
26 Дек 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Конечно, я могу помочь с написанием программы на языке C, которая будет удалять часть строки, заключенную в круглые скобки (вместе со скобками). Вот пример кода: #include
#include

void remove_parentheses(char* str) {
int i, j;
int len = strlen(str);
int parentheses_count = 0;

for (i = 0; i < len; i++) {
if (str == '(') {
parentheses_count++;
} else if (str == ')') {
parentheses_count--;
if (parentheses_count == 0) {
for (j = i; j >= 0; j--) {
if (str[j] == '(') {
break;
}
}
memmove(&str[j], &str[i + 1], strlen(&str[i + 1]) + 1);
len -= i - j + 1;
i = j - 1;
}
}
}
}

int main() {
char str[100];

printf("Введите строку: ");
fgets(str, sizeof(str), stdin);
if (str[strlen(str) - 1] == '\n') {
str[strlen(str) - 1] = '\0';
}

remove_parentheses(str);

printf("Строка без скобок: %s\n", str);

return 0;
}
Эта программа считывает строку с помощью функции fgets(), а затем вызывает функцию remove_parentheses(), которая удаляет часть строки, заключенную в круглые скобки (вместе со скобками). Для удаления подстроки мы используем функцию memmove(), которая копирует последующую часть строки в начало удаленной части. Затем мы выводим измененную строку на экран.

Надеюсь, это поможет!
 
Регистрация
7 Окт 2013
Сообщения
96
Репутация
0
Спасибо
0
Монет
0
#include
#include

int main() {
char str[100];
printf("Введите строку: ");
fgets(str, 100, stdin); // получаем строку с помощью fgets

int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) { // проходим по всей строке
if (str == '(') { // если находим открывающую скобку
while (str != ')' && i < len) { // продолжаем движение по строке, пока не найдем закрывающую скобку
i++;
}
} else { // если это не скобка, то копируем символ в новую строку
str[j] = str;
j++;
}
}
str[j] = '\0'; // добавляем завершающий символ

printf("Строка без круглых скобок: %s", str);
return 0;
}
Программа считывает строку с помощью функции fgets, затем проходит по всей строке и копирует каждый символ, кроме тех, которые заключены в круглые скобки. Результат выводится на экран.
 
Регистрация
25 Июл 2013
Сообщения
69
Репутация
0
Спасибо
0
Монет
0
#include

void udalenije(char * string)
{
unsigned a,b;
for(a = 0,b = 0; string[a]; a++)
{
if(string[a] == '(')
{
while(string[a] && string[a] != ')')
a++;
}
else
{
string = string[a];
b++;
}
}
string = '\0';
}

int main()
{
char example[100];
fgets(example,100,stdin);
//printf("%s\n",example); // я так проверил, что ввелось
udalenije(example);
printf("%s\n",example);

return 0;
}
 
Регистрация
24 Окт 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
Конечно, вот программа на C, которая удаляет части строки, заключенные в круглые скобки:

```
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

#определить MAX_LEN 100

недействительными remove_parentheses (символ * ул) {
int len = ул (str);
инт я, дж, к;
для (я = 0; я &lt; len; я ++) {
если (str == &#39;(&#39;) {
для (j = i + 1; j &lt; len; j++) {
если (str[j] == &#39;)&#39;) {
для (k = j; k &lt; len; k++) {
ул[к] = ул[к + 1];
}
len -= (j - i + 1);
перерыв;
}
}
}
}
}

интервал основной () {
символ ул[MAX_LEN];
printf(&#34;Введите строку: &#34;);
fgets(str, MAX_LEN, стандартный ввод);
удалить_круглые скобки (ул);
printf(&#34;Результат: %s&#34;, стр);
вернуть 0;
}
```

Функция `remove_parentheses()` принимает строку в качестве входных данных и удаляет из строки все, что заключено в круглые скобки (включая сами круглые скобки). Функция перебирает каждый символ строки, ища открывающие скобки `(`. Как только открывающая скобка найдена, функция ищет соответствующие закрывающие скобки `)` и удаляет все между ними, сдвигая символы в строке на левый.

В функции `main()` мы предлагаем пользователю ввести строку, вызываем `remove_parentheses()`, чтобы изменить строку, а затем распечатываем результат.
 
Сверху Снизу