Форум программистов, компьютерный форум CyberForum.ru

сравнение строк - C++

Восстановить пароль Регистрация
 
mirag0505
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 17
05.06.2013, 02:56     сравнение строк #1
Нужно сравнить строки типа стринг, без использования стандартных функций
НЕ знаю,как их присвоить, пытаюсь передать функции string11 b string22. но они пустые
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
#include <string>
#include <iostream>
#include <cstring> 
#include <stdio.h>
#include <string.h>
using namespace std; 
 
bool WordCmp(string string11,string string22)
{
    
  if (string11==string22) {cout<< "Одинаковые они"<<endl;}
  else {cout<< "Разные"<<endl;} 
} 
 
int main() 
{ 
string string1;
string string11="";
string string2;
string string22="";
cout<< "VVDITE STR1  ";
cin >> string1;
cout<< "VVDITE STR2  ";
cin >> string2;
int a=string1.length();
int b=string2.length();
 
for(int i=0;i<a;i++){
     if (string1[i]=='0') {break;}
     string11[i]=string1[i];// Так делать можно?
     
}
 
for(int i=0;i<b;i++){
     if (string2[i]=='0') {break;}
     string22[i]=string2[i];
}
 
WordCmp(string11,string22); 
 
return 0; 
}
Добавлено через 4 минуты
оо забыл, при это конец строки, которую я ввожу,обозначается '0'(нулем), все после нуля отбрасывается
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 02:56     сравнение строк
Посмотрите здесь:

C++ Сравнение строк
C++ Сравнение строк
C++ Сравнение строк
Сравнение строк C++
Сравнение строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,410
05.06.2013, 02:59     сравнение строк #2
Цитата Сообщение от mirag0505 Посмотреть сообщение
for(int i=0;i<a;i++){
* * *if (string1[i]=='0') {break;}
* * *string11[i]=string1[i];// Так делать можно?
что за бред?
Если нужен цикл по символам string строки, то это делается так:
C++
1
2
3
4
for (size_t i=0; i < ourString.size(); i++)
{
    // ... some operation
}
Но на самом деле, оператор = у строк уже определен и нам достаточно записать
C++
1
string11 = string1;
mirag0505
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 17
05.06.2013, 09:03  [ТС]     сравнение строк #3
string.size()- вроде, определяет размер в байтах строки
и мне нужно передать только часть стринга при вводе переменной, все что до нуля '0'
это признак конца строки
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11825 / 6804 / 769
Регистрация: 27.09.2012
Сообщений: 16,871
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 09:18     сравнение строк #4
Цитата Сообщение от mirag0505 Посмотреть сообщение
string.size()- вроде, определяет размер в байтах строки
кол-во символов в строке.

Цитата Сообщение от mirag0505 Посмотреть сообщение
все что до нуля '0'
это признак конца строки
Зависит от реализации string

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <string>
#include <iostream>
#include <functional>
bool cmp(const std::string & str1,const std::string & str2){
    size_t size1=str1.size();
    if(size1!=str2.size())
        return false;
    for(size_t i=0;i<size1;++i)
        if(str1[i]!=str2[i])
            return false;
    return true;
}
 
int main(){
    std::string str1="my string";
    std::string str2="my string";
    std::cout<<cmp(str1,str2)<<std::endl;
    return 0;
}
Yandex
Объявления
05.06.2013, 09:18     сравнение строк
Ответ Создать тему
Опции темы

Текущее время: 15:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru