Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
Scaper
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 49
1

Сравнение строк (аналог strcmp)

26.06.2017, 21:22. Просмотров 291. Ответов 4
Метки нет (Все метки)

В Lazarus есть аналог функции strcmp ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2017, 21:22
Ответы с готовыми решениями:

Сравнение строк без учета регистра
Помогите понять почему AnsiLowerCase с кириллицей из под Linux работает, а из...

Аналог strcmp: лексикографическое сравнение
Подскажите пожалуйста, как мы сами можем написать аналог такой функции?

Сравнение строк, не используя strcmp
Здравствуйте. Столкнулся с такой вот проблемой: Задача: Написать процедуру...

Сравнение двух строк функцией strcmp
Напишите программу, которая использует функцию strcmp для сравнения двух строк,...

Создайте функцию strcmp – сравнение двух строк, учитывая регистр символов
Всем привет :) Объясните , пожалуйста, почему не работает программа (работает...

4
Kitayets
340 / 294 / 103
Регистрация: 09.09.2011
Сообщений: 1,047
26.06.2017, 22:47 2
есть

модуль strings смотри
0
abit
272 / 271 / 83
Регистрация: 03.02.2013
Сообщений: 772
28.06.2017, 10:24 3
https://www.freepascal.org/docs-html/rtl/strings/strcomp.html
0
Scaper
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 49
29.06.2017, 16:24  [ТС] 4
Как такую же функцию написать в Lazarus ?
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
int loadObject(const char* filename)
{
        std::vector<std::string*> coord;        //read every single line of the obj file as a string
        std::vector<coordinate*> vertex;
        std::vector<face*> faces;
        std::vector<coordinate*> normals;       //normal vectors for every face
        std::ifstream in(filename);     //open the .obj file
        if(!in.is_open())       //if not opened, exit with -1
        {
                std::cout << "Nor oepened" << std::endl;
                return -1;
        }
        char buf[256];
        //read in every line to coord
        while(!in.eof())
        {
                in.getline(buf,256);
                coord.push_back(new std::string(buf));
        }
        //go through all of the elements of coord, and decide what kind of element is that
        for(int i=0;i<coord.size();i++)
        {
                if(coord[i]->c_str()[0]=='#')   //if it is a comment (the first character is #)
                        continue;       //we don't care about that
                else if(coord[i]->c_str()[0]=='v' && coord[i]->c_str()[1]==' ') //if vector
                {
                        float tmpx,tmpy,tmpz;
                        sscanf(coord[i]->c_str(),"v %f %f %f",&tmpx,&tmpy,&tmpz);       //read in the 3 float coordinate to tmpx,tmpy,tmpz
                        vertex.push_back(new coordinate(tmpx,tmpy,tmpz));       //and then add it to the end of our vertex list
                }else if(coord[i]->c_str()[0]=='v' && coord[i]->c_str()[1]=='n')        //if normal vector
                {
                        float tmpx,tmpy,tmpz;   //do the same thing
                        sscanf(coord[i]->c_str(),"vn %f %f %f",&tmpx,&tmpy,&tmpz);
                        normals.push_back(new coordinate(tmpx,tmpy,tmpz));     
                }else if(coord[i]->c_str()[0]=='f')     //if face
                {
                        int a,b,c,d,e;
                        if(count(coord[i]->begin(),coord[i]->end(),' ')==3)     //if it is a triangle (it has 3 space in it)
                        {
                  sscanf(coord[i]->c_str(),"f %d//%d %d//%d %d//%d",&a,&b,&c,&b,&d,&b);
                                faces.push_back(new face(b,a,c,d));     //read in, and add to the end of the face list
                        }else{
                                sscanf(coord[i]->c_str(),"f %d//%d %d//%d %d//%d %d//%d",&a,&b,&c,&b,&d,&b,&e,&b);
                                faces.push_back(new face(b,a,c,d,e));   //do the same, except we call another constructor, and we use different pattern
                        }
                }
        }
//raw
0
Kitayets
340 / 294 / 103
Регистрация: 09.09.2011
Сообщений: 1,047
01.07.2017, 00:08 5
Scaper, в этом коде нет ничего магического, он переписывается на pascal "1 в 1" практически, в чем у Вас трудность? или весть код за Вас написать?

хотите что-бы за Вас, тогда подготовьте пару тестов - что в файле и что должно попасть в массивы, или хотя-бы кол-элементов которые туда попадут при конкретном входном файле.
0
01.07.2017, 00:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2017, 00:08

Дружественная функция, аналог strcmp
Есть класс Stroka, с двумя полями: str - сама строка и maxlen - длина...

Написать аналог функций strcat и strcmp
Помогите пожалуйста написать аналог функций strcat и strcmp на Си

Аналог strcmp только для слов
Я знаю,что strcmp сравнивает две строки,а есть ли такая команда ,чтобы...


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

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

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