Member 13515388 Ответов: 2

Вырезать и вставить на языке Си


привет Я должен написать программу на языке Си без строковых функций, которая получает строку и 3 числа . например , строка "abcdefghi", и вы вводите 1-е число 3, 2-е число, которое является вашим пунктом назначения 5, а затем 3-е число 7, программа должна дать вам "abfcdeghi" ,его как вырезать и вставить !

Что я уже пробовал:

ну, я еще ничего не пробовал ! я даже не знаю с чего начать :(

Suvendu Shekhar Giri

Не совсем понятно, что вы здесь пытаетесь сделать!
Сначала попробуйте что-нибудь и четко опишите, что вы пытаетесь здесь сделать.

Какое отношение эти входные данные 3,5,7 имеют к результату?
Единственная разница, которую я вижу, - это то, что позиция "f" изменилась с 6-й на 3-ю.

2 Ответов

Рейтинг:
2

Patrice T

Входные данные : "abcdefghi"
результат таков: "abfcdeghi"
и у вас есть 3 числа 3, 5 и 7.

Первое: вам нужно понять, что это за числа, потому что для перемещения 1 Буквы в строке вам нужно всего 2 числа: начальная и конечная позиции.

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

Мы не делаем вашу домашнюю работу.


Рейтинг:
0

Richard MacCutchan

Подумайте о шагах, которые вам нужно предпринять, чтобы достичь этого:
Как Вы читаете символы и где вы их сохраняете?
Как Вы читаете цифры и где вы их сохраняете?
Как вы находите символы из заданных чисел?
Как вы перемещаете символы из одной позиции в другую, не разрушая существующие (например, копировать, перемещать ...)?
Как вы печатаете результаты?

Запишите все на бумаге и посмотрите, что происходит на каждом шагу.


Member 13515388

Я пробовал это сделать, но у меня все еще есть проблема с тем, как вставить символы :(

Richard MacCutchan

У вас есть две возможности. Один, вы просто переключитесь двух персонажей настолько "абвгде" становится "abcfed", который довольно прост. Во-вторых, вам нужно удалить символ из одной позиции и вставить его в другую, чтобы "abcdef" стал "acdebf". Вторая форма выполняется путем удаления первого символа и перемещения следующих символов вниз на один пробел. Затем переместите некоторые символы вверх на один пробел, чтобы вставить сохраненный символ. Как я уже говорил выше, нарисуйте его на бумаге в маленьких коробочках, чтобы помочь визуализировать то, что вам нужно сделать.

Member 13515388

Большое спасибо :)

Member 13515388

#включить<stdio.h>
тап_п()
{
char a[50],b[50];
int f,c,d,i=0,j=0;
printf("reshte morede nazar ra vared konid :\t");
получает(а);
printf("ebteda :\t");
scanf("%d",&f);
printf("enteha :\t");
scanf("%d",&c);
printf("maghsad :\t");
scanf("%d",&d);
for(i=0;a[i]!='\0';i++){
если(F&ЛТ;=я &усилителя; усилителя; amp; я&л;=с){
b[j]=a[i-1];
Дж++;
}
}


это моя программа до сих пор ! он отрезает часть моей струны и вставляет ее в другую струну , теперь я хочу скопировать b[j] в a[c] ! например , a[50] - это abcdefghi, и я ввожу f=3, c=5 и d=7, затем он режет cde и перемещает его в b[j] теперь я хочу, чтобы он показал cde в g месте, но idk как