Форум программистов, компьютерный форум, киберфорум
Наши страницы

CString::find не сравнивает - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить является ли строка палиндромом и удалить заглавные символы http://www.cyberforum.ru/cpp-beginners/thread668742.html
#include <iostream> #include <stdio.h> #include <string.h> #include <ctype.h> using namespace std; int main() { char* s= new char ; //задаем строку
C++ Азбука Морзе, добавить пробел между словами при декодировании Написал "программу" для перевода кода Морзе на Английский и наоборот, но никак не могу понять как сделать чтобы между словами ставился пробел(в варианте Морзе->Английский). Также почему-то не... http://www.cyberforum.ru/cpp-beginners/thread668734.html
Определить, сколько строчных русских букв в наборе слов C++
Дано файл в формате txt. А в файле набор слов. Написать программу которая определяет сколько букв а, б, в, г, д, е, ё, ж, з, и, й, к, л, м, н, о, п, р, с, т, у, ф, х, ц, ч, ш, щ, ъ, ы, ь,...
как вывести число х из элементов и вычислить по формуле C++
X состоит из элементов 1,2,3,5,0 Необходимо вывести 1. И вычислить по формуле yi=(xi-1+xi)/2 при этом y1=x1 подскажите,пожалуйста как программа для этого выглядит?
C++ Системы счисления http://www.cyberforum.ru/cpp-beginners/thread668718.html
Задано натуральное число n. Необходимо перевести его в k-ичную систему счисления и найти разность между произведением и суммой его цифр в этой системе счисления. Например, пусть n = 239, k = 8....
C++ Считать массив структур из файла //создание файла-записи #include<iostream> #include<conio.h> #include<stdio.h> using namespace std; //Стpуктуpа данных struct CD { char name; char adres ; подробнее

Показать сообщение отдельно
SAkonst
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 19

CString::find не сравнивает - C++

11.10.2012, 16:11. Просмотров 473. Ответов 0
Метки (Все метки)

Здравствуйте,

Помогите, пожалуйста:
Сравниваю CString с char через метод Find следующим образом:
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
CString Word;
char EEditTargetLine[15];
 
 //считывание из editbox в переменную типа char
m_EditTarget.GetLine(EEditBoxLineCurr, EEditTargetLine, QuantityOfCharInTargetBox);
 
//Считывание из строчки слова в переменную типа CString
sscanf (String + PosPointer, QuantityOfSymbols, Word);
 
int OTargetLen;                     
int symbW = 0;          //For symbol of Word
int symbT = 0;          //For symbol of Target
int Compare;
bool CompareDone = FALSE;
 
OTargetLen = strlen(EEditTargetLine); 
 
    for (symbW = 0; symbW < OTargetLen; symbW++)
    {
               //Само сравнение. По-символьно.
            Compare = Word.Find(EEditTargetLine[symbT], symbW); 
        if (Compare != -1)
        {
            symbT += 1;
            CompareDone = TRUE;
        }
        else if (CompareDone == TRUE)
        {
            CompareDone == FALSE;
            break;
        }
    }
Метод find возвращает либо положение символа, если он найден, либо -1 если совпадений нет.
Так вот в данном случае я в дебаггере вижу, что символы совпадают, но он все-равно возвращает -1.

Еще один момент:
До этого писал почти тоже самое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
while (WordPoint != IWordLen)
{
    CheckSymb = HexView.Find(HexWord[WordPoint], ViewPoint);
    if (CheckSymb != -1)
            HexWordCheck = TRUE;
    else 
    {
        HexWordCheck = FALSE;
        break;
    }
    WordPoint += 1;
    ViewPoint += 1;
}
и последнее работает. В данном случае Cstring HexView получается из struct, а char[HexWord] также через sscanf.

Где может быть засада, и в чем же отличие работающей от неработающей функции?

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