Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
1

Сравнение строк

16.12.2014, 11:11. Просмотров 907. Ответов 6
Метки нет (Все метки)

Есть два файла,достаю из первого - 1-ю строку и из 2 - 1-ю строку
Они имеют вид:
1;bla;3412;sha;1234;4321;28.15;

3;alb;1243;ash;1234;4321;28.02


Нужно сравнить их по одинаковому элементу строки и в новый файл записать общее то что получилось:
1;3;bla;alb;3412;1241;sha;ash;1234;4321;28.15;28.02


Прошу помочь написать функции сравнения
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2014, 11:11
Ответы с готовыми решениями:

Сравнение строк
Написал элементарную функцию, проверяющую введённый пользователем текст. Проблема в том, что он в...

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

Сравнение строк
Сначала указываю каталог, из которого нужно вывести список файлов этого каталога, затем ввожу имя...

сравнение строк
Подскажите как сравнить std::string и char *array ? может нужно преобразовать к одному типу сперва...

Сравнение 2 строк
сравнивать строки я умею тут вопрос немного в другом. по какому принципу определяет что ab больше...

6
nmcf
6526 / 5750 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
16.12.2014, 11:24 2
Нужно извлекать не строку целиком, а отдельные составляющие, и после их сравнивать. Используй, например, getline() c delimeter = ';'.
0
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
16.12.2014, 11:31  [ТС] 3
а можно пример,самый примитивный
0
Prorok2323
169 / 127 / 74
Регистрация: 04.12.2013
Сообщений: 552
16.12.2014, 12:15 4
Лучший ответ Сообщение было отмечено ebywku как решение

Решение

секунду

Добавлено через 4 минуты
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
string check(string s1, string s2) {
    string result = "";
    string delim = ";";
    
    unsigned long index = s1.find(delim);
    while (1) {
        string sub1 = s1.substr(0, index);
        string sub2 = s2.substr(0, index);
        if (index == s1.length() - 1) {
            result += sub1 + ";" + sub2 + ";";
            break;
        }
        if (sub1 == sub2) {
            result += sub1 + ";";
        } else {
            result += sub1 + ";" + sub2 + ";";
        }
        s1.erase(0, index + 1);
        s2.erase(0, index + 1);
    
        index = s1.find(delim);
    }
    
    
    return result;
}
1
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
16.12.2014, 12:34  [ТС] 5
E2467 'stringcheck(string,string)' cannot return a value
убрал,запустил, но итог не утешил, бесконечный набор цифр,может что то не так сделал?

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
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
 
 
void stringcheck(string s1, string s2) {
    string result = "";
    string delim = ";";
 
    unsigned long index = s1.find(delim);
    while (1) {
        string sub1 = s1.substr(0, index);
        string sub2 = s2.substr(0, index);
        if (index == s1.length() - 1) {
            result += sub1 + ";" + sub2 + ";";
            break;
        }
        if (sub1 == sub2) {
            result += sub1 + ";";
        } else {
            result += sub1 + ";" + sub2 + ";";
        }
        s1.erase(0, index + 1);
        s2.erase(0, index + 1);
 
        index = s1.find(delim);
 
    }
 
  return result ;
 
}
 
int main()
{
 string s1="21321;231312;211;11;1;1",s2="21231;211212;12121;33";
stringcheck(s1,s2);
 
system("pause");
}
0
Prorok2323
169 / 127 / 74
Регистрация: 04.12.2013
Сообщений: 552
16.12.2014, 14:14 6
Лучший ответ Сообщение было отмечено ebywku как решение

Решение

ebywku, потому что моя программа сравнивает строки одинаковой длины и одинаковой структуры. Вы не уточняли, что могут быть строки разной длины и т.п.. Можете сами переписать, или подождите до вечера.
1
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
16.12.2014, 14:22  [ТС] 7
сейчас попробую сам,а вечером с вашим результатом сверюсь,если вы не против
0
16.12.2014, 14:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2014, 14:22

Сравнение строк
Тупо и банально нужно сравнить строки средствами с++. Гуглил, но не нашел работающих примеров, толи...

Сравнение строк
Объясните пожалуйста по какому способу строки сравниваются? А то я сравнивал так и не понял в чем...

Сравнение строк
MrGluck, не знаю: if ( strcmp( c1, c2 ) &lt; 0 ) // правильное сравнение printf( &quot;And it was...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru