Написать несложную программу на языке С
Нужно выполнить следующее задание
Работа со строками
Дописати у S2 ті символи з S1, які не зустрічаються у S2
Есть код,но в нём ошибка. Нужно её исправить, использую тот синтаксис,который присутствует в коде
#include <stdio.h>
#include <string.h>
int main(){
char s1[20], s2[20];
int n,p;
int i,j;
gets(s1);
gets(s2);
n=strlen(s1);
p=strlen(s2);
for(i=0;i<n;i++){
bool has = false;
for(j=0;j<p;j++){
if (s1[i]==s2[j])
has = true;
}
if (has=false)
s2 = s2+s1[i];
}
puts(s2);
return 0;
}
-
57 Готовий вже зараз виправити помилку. Додам коментарі з вказівкою на помилку.
-
397 2 0 Здравствуйте.
Сделаю прямо сейчас. Пишите в лс. Делов на полчаса.
-
215 1 0 Добрый день! Выполню прямо сейчас и отправлю вам! Пишите в личку.
-
878 21 0 1 здравствуйте, готов сейчас же выполнить ваше задание. Пишите в ЛС или в скайп gayka_mariko
-
Не морочьте вы ему голову функциями из рнр, тут чистый С. Обращайтесь, я подправил ваш пример. Это всё очень криво, но зато сойдёт за "Вашу" работу, а не за чью-то.
-

может можно и лучше, буду рад если поправите
[code]
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1, s2;
bool isNew = false;
cout << "Enter string s1: ";
getline(cin, s1);
cout << "Enter string s2: ";
getline(cin, s2);
for (int i = 1; i < s1.size(); i++) {
for (int j = 1; j < s2.size(); j++) {
if (s1[i] == s2[j]) {
isNew = false;
break;
}
else {
isNew = true;
}
}
if (isNew) {
s2 += s1[i];
isNew = false;
}
}
cout << "s2 = ";
for (int i = 0; i < s2.size(); i++) {
cout << s2[i];
}
cout << endl;
system("pause");
return 0;
}[/code]
-
там в "s2 += s1[i];" ошибка, вы же присваиваете указателю значение.
-
Максим, в си недопустима такая операция со строками 's2 = s2 +s1[i]'. Вы выделили лишь 20 байт под символы и ни как расширить этот массив не можете. Вы можете изначально выделить 40 байт(максимальная длинна, если в обоих строках ни один символ не повторился), хранить позицию последней записи и записывать по данному индексу не повторяющийся символ, после чего инкрементировать ее.
-
if (has=false)
вечное false, ветка кода не рабочая -
Максим, я исправил. Вам еще нужна программа?
-
Актуальные фриланс-проекты в категории C и C++
Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная… C и C++, Десктопные приложения ∙ 10 дней 14 часов назад ∙ 6 ставок |
Разработка карты семян Minecraft Java / просмотрщика семян для сайтаРазработка карты семян Minecraft Java / Seed Viewer для сайтаОписание проекта Необходимо разработать браузерный инструмент Minecraft Java Seed Map / Seed Viewer, который будет работать на нашем сайте и позволит пользователю ввести семя Minecraft Java Edition и просмотреть… C и C++, HTML и CSS верстка ∙ 10 дней 21 час назад ∙ 17 ставок |
